]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - fs/aio.c
mn10300: remove wrapper header for asm/device.h
[linux.git] / fs / aio.c
index 020fa0045e3c154762bf8d896d1b562305406401..dcad3a66748c041a48588b612f85fae78086f5f5 100644 (file)
--- a/fs/aio.c
+++ b/fs/aio.c
@@ -1568,6 +1568,7 @@ static int io_submit_one(struct kioctx *ctx, struct iocb __user *user_iocb,
        req->common.ki_pos = iocb->aio_offset;
        req->common.ki_complete = aio_complete;
        req->common.ki_flags = iocb_flags(req->common.ki_filp);
+       req->common.ki_hint = file_write_hint(file);
 
        if (iocb->aio_flags & IOCB_FLAG_RESFD) {
                /*
@@ -1592,6 +1593,12 @@ static int io_submit_one(struct kioctx *ctx, struct iocb __user *user_iocb,
                goto out_put_req;
        }
 
+       if ((req->common.ki_flags & IOCB_NOWAIT) &&
+                       !(req->common.ki_flags & IOCB_DIRECT)) {
+               ret = -EOPNOTSUPP;
+               goto out_put_req;
+       }
+
        ret = put_user(KIOCB_KEY, &user_iocb->aio_key);
        if (unlikely(ret)) {
                pr_debug("EFAULT: aio_key\n");