diff mbox series

ext4: remove trivial nowait check for buffered write

Message ID 1580529639-26328-1-git-send-email-qiwuchen55@gmail.com
State Rejected
Headers show
Series ext4: remove trivial nowait check for buffered write | expand

Commit Message

qiwuchen55@gmail.com Feb. 1, 2020, 4 a.m. UTC
From: chenqiwu <chenqiwu@xiaomi.com>

Remove trivial nowait check for ext4_buffered_write_iter(),
since buffered writes will return -EINVAL if IOCB_NOWAIT
passed in the follow-up function ext4_write_checks()->
ext4_generic_write_checks()->generic_write_checks().

Signed-off-by: chenqiwu <chenqiwu@xiaomi.com>
---
 fs/ext4/file.c | 3 ---
 1 file changed, 3 deletions(-)

Comments

Theodore Ts'o Feb. 1, 2020, 10:49 p.m. UTC | #1
On Sat, Feb 01, 2020 at 12:00:39PM +0800, qiwuchen55@gmail.com wrote:
> From: chenqiwu <chenqiwu@xiaomi.com>
> 
> Remove trivial nowait check for ext4_buffered_write_iter(),
> since buffered writes will return -EINVAL if IOCB_NOWAIT
> passed in the follow-up function ext4_write_checks()->
> ext4_generic_write_checks()->generic_write_checks().
> 
> Signed-off-by: chenqiwu <chenqiwu@xiaomi.com>

The reason why we do this check here is so that we return immediately
and not potentially block when we call inode_lock().  Otherwise, an
AIO request with IOCB_NOWAIT could block, and that's not allowed.

    	    	 	     	   	  - Ted
diff mbox series

Patch

diff --git a/fs/ext4/file.c b/fs/ext4/file.c
index 5f22588..18ae435 100644
--- a/fs/ext4/file.c
+++ b/fs/ext4/file.c
@@ -258,9 +258,6 @@  static ssize_t ext4_buffered_write_iter(struct kiocb *iocb,
 	ssize_t ret;
 	struct inode *inode = file_inode(iocb->ki_filp);
 
-	if (iocb->ki_flags & IOCB_NOWAIT)
-		return -EOPNOTSUPP;
-
 	inode_lock(inode);
 	ret = ext4_write_checks(iocb, from);
 	if (ret <= 0)