mirror of
https://github.com/torvalds/linux.git
synced 2024-11-14 16:12:02 +00:00
ext4: do not block RWF_NOWAIT dio write on unallocated space
Since commit378f32bab3
("ext4: introduce direct I/O write using iomap infrastructure") we don't properly bail out of RWF_NOWAIT direct IO write if underlying blocks are not allocated. Also ext4_dio_write_checks() does not honor RWF_NOWAIT when re-acquiring i_rwsem. Fix both issues. Fixes:378f32bab3
("ext4: introduce direct I/O write using iomap infrastructure") Cc: stable@kernel.org Reported-by: Filipe Manana <fdmanana@gmail.com> Signed-off-by: Jan Kara <jack@suse.cz> Reviewed-by: Ritesh Harjani <riteshh@linux.ibm.com> Link: https://lore.kernel.org/r/20200708153516.9507-1-jack@suse.cz Signed-off-by: Theodore Ts'o <tytso@mit.edu>
This commit is contained in:
parent
e65bf6e468
commit
0b3171b6d1
@ -427,6 +427,10 @@ restart:
|
||||
*/
|
||||
if (*ilock_shared && (!IS_NOSEC(inode) || *extend ||
|
||||
!ext4_overwrite_io(inode, offset, count))) {
|
||||
if (iocb->ki_flags & IOCB_NOWAIT) {
|
||||
ret = -EAGAIN;
|
||||
goto out;
|
||||
}
|
||||
inode_unlock_shared(inode);
|
||||
*ilock_shared = false;
|
||||
inode_lock(inode);
|
||||
|
Loading…
Reference in New Issue
Block a user