aio_qphysio: Eliminate one instance of an out-of-range check that is

performed twice.  Eliminate initialization that is already performed
 by _aio_aqueue.

aio_physwakeup: Eliminate redundant synchronization that is already
 performed by bufdone.
This commit is contained in:
Alan Cox 2000-09-26 06:35:22 +00:00
parent 3af9501ad5
commit b92bb032d8

View File

@ -952,7 +952,7 @@ aio_qphysio(struct proc *p, struct aiocblist *aiocbe)
struct aio_liojob *lj;
int fd;
int s;
int cnt, notify;
int notify;
cb = &aiocbe->uaiocb;
fdp = p->p_fd;
@ -979,24 +979,13 @@ aio_qphysio(struct proc *p, struct aiocblist *aiocbe)
if (cb->aio_nbytes % vp->v_rdev->si_bsize_phys)
return (-1);
if ((cb->aio_nbytes > MAXPHYS) && (num_buf_aio >= max_buf_aio))
if (cb->aio_nbytes > MAXPHYS)
return (-1);
ki = p->p_aioinfo;
if (ki->kaio_buffer_count >= ki->kaio_ballowed_count)
return (-1);
cnt = cb->aio_nbytes;
if (cnt > MAXPHYS)
return (-1);
/*
* Physical I/O is charged directly to the process, so we don't have to
* fake it.
*/
aiocbe->inputcharge = 0;
aiocbe->outputcharge = 0;
ki->kaio_buffer_count++;
lj = aiocbe->lio;
@ -1203,7 +1192,7 @@ _aio_aqueue(struct proc *p, struct aiocb *job, struct aio_liojob *lj, int type)
unsigned int fd;
struct socket *so;
int s;
int error = 0;
int error;
int opcode;
struct aiocblist *aiocbe;
struct aioproclist *aiop;
@ -2201,11 +2190,8 @@ aio_physwakeup(struct buf *bp)
struct proc *p;
struct kaioinfo *ki;
struct aio_liojob *lj;
int s;
s = splbio();
wakeup((caddr_t)bp);
bp->b_flags |= B_DONE;
aiocbe = (struct aiocblist *)bp->b_spc;
if (aiocbe) {
@ -2258,7 +2244,6 @@ aio_physwakeup(struct buf *bp)
if (aiocbe->uaiocb.aio_sigevent.sigev_notify == SIGEV_SIGNAL)
timeout(process_signal, aiocbe, 0);
}
splx(s);
}
#endif /* VFS_AIO */