Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/vfs_aio.c
| Show First 20 Lines • Show All 1,413 Lines • ▼ Show 20 Lines | |||||
| aiocb_copyin(struct aiocb *ujob, struct kaiocb *kjob, int type) | aiocb_copyin(struct aiocb *ujob, struct kaiocb *kjob, int type) | ||||
| { | { | ||||
| struct aiocb *kcb = &kjob->uaiocb; | struct aiocb *kcb = &kjob->uaiocb; | ||||
| int error; | int error; | ||||
| error = copyin(ujob, kcb, sizeof(struct aiocb)); | error = copyin(ujob, kcb, sizeof(struct aiocb)); | ||||
| if (error) | if (error) | ||||
| return (error); | return (error); | ||||
| if (type == LIO_NOP) | |||||
| type = kcb->aio_lio_opcode; | |||||
| if (type & LIO_VECTORED) { | if (type & LIO_VECTORED) { | ||||
| /* malloc a uio and copy in the iovec */ | /* malloc a uio and copy in the iovec */ | ||||
| error = copyinuio(__DEVOLATILE(struct iovec*, kcb->aio_iov), | error = copyinuio(__DEVOLATILE(struct iovec*, kcb->aio_iov), | ||||
| kcb->aio_iovcnt, &kjob->uiop); | kcb->aio_iovcnt, &kjob->uiop); | ||||
| } | } | ||||
| return (error); | return (error); | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 122 Lines • ▼ Show 20 Lines | if ((job->uaiocb.aio_sigevent.sigev_notify == SIGEV_SIGNAL || | ||||
| error = EINVAL; | error = EINVAL; | ||||
| goto err2; | goto err2; | ||||
| } | } | ||||
| /* Get the opcode. */ | /* Get the opcode. */ | ||||
| if (type == LIO_NOP) { | if (type == LIO_NOP) { | ||||
| switch (job->uaiocb.aio_lio_opcode) { | switch (job->uaiocb.aio_lio_opcode) { | ||||
| case LIO_WRITE: | case LIO_WRITE: | ||||
| case LIO_WRITEV: | |||||
| case LIO_NOP: | case LIO_NOP: | ||||
| case LIO_READ: | case LIO_READ: | ||||
| case LIO_READV: | |||||
| opcode = job->uaiocb.aio_lio_opcode; | opcode = job->uaiocb.aio_lio_opcode; | ||||
| break; | break; | ||||
| default: | default: | ||||
| error = EINVAL; | error = EINVAL; | ||||
| goto err2; | goto err2; | ||||
| } | } | ||||
| } else | } else | ||||
| opcode = job->uaiocb.aio_lio_opcode = type; | opcode = job->uaiocb.aio_lio_opcode = type; | ||||
| ▲ Show 20 Lines • Show All 1,587 Lines • Show Last 20 Lines | |||||