diff options
Diffstat (limited to 'fs/btrfs/file.c')
-rw-r--r-- | fs/btrfs/file.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c index 9e75d8a39aac..e62dd55b4079 100644 --- a/fs/btrfs/file.c +++ b/fs/btrfs/file.c | |||
@@ -1886,6 +1886,10 @@ static ssize_t btrfs_file_write_iter(struct kiocb *iocb, | |||
1886 | loff_t oldsize; | 1886 | loff_t oldsize; |
1887 | int clean_page = 0; | 1887 | int clean_page = 0; |
1888 | 1888 | ||
1889 | if (!(iocb->ki_flags & IOCB_DIRECT) && | ||
1890 | (iocb->ki_flags & IOCB_NOWAIT)) | ||
1891 | return -EOPNOTSUPP; | ||
1892 | |||
1889 | if (!inode_trylock(inode)) { | 1893 | if (!inode_trylock(inode)) { |
1890 | if (iocb->ki_flags & IOCB_NOWAIT) | 1894 | if (iocb->ki_flags & IOCB_NOWAIT) |
1891 | return -EAGAIN; | 1895 | return -EAGAIN; |
@@ -3105,7 +3109,7 @@ out: | |||
3105 | 3109 | ||
3106 | static int btrfs_file_open(struct inode *inode, struct file *filp) | 3110 | static int btrfs_file_open(struct inode *inode, struct file *filp) |
3107 | { | 3111 | { |
3108 | filp->f_mode |= FMODE_AIO_NOWAIT; | 3112 | filp->f_mode |= FMODE_NOWAIT; |
3109 | return generic_file_open(inode, filp); | 3113 | return generic_file_open(inode, filp); |
3110 | } | 3114 | } |
3111 | 3115 | ||