|
@@ -1541,7 +1541,7 @@ static int io_submit_one(struct kioctx *ctx, struct iocb __user *user_iocb,
|
|
|
ssize_t ret;
|
|
|
|
|
|
/* enforce forwards compatibility on users */
|
|
|
- if (unlikely(iocb->aio_reserved1 || iocb->aio_reserved2)) {
|
|
|
+ if (unlikely(iocb->aio_reserved2)) {
|
|
|
pr_debug("EINVAL: reserve field set\n");
|
|
|
return -EINVAL;
|
|
|
}
|
|
@@ -1586,6 +1586,12 @@ static int io_submit_one(struct kioctx *ctx, struct iocb __user *user_iocb,
|
|
|
req->common.ki_flags |= IOCB_EVENTFD;
|
|
|
}
|
|
|
|
|
|
+ ret = kiocb_set_rw_flags(&req->common, iocb->aio_rw_flags);
|
|
|
+ if (unlikely(ret)) {
|
|
|
+ pr_debug("EINVAL: aio_rw_flags\n");
|
|
|
+ goto out_put_req;
|
|
|
+ }
|
|
|
+
|
|
|
ret = put_user(KIOCB_KEY, &user_iocb->aio_key);
|
|
|
if (unlikely(ret)) {
|
|
|
pr_debug("EFAULT: aio_key\n");
|