Message ID | 78ce051e4a7e9a453a46720da76771c21691b162.1729944406.git.ritesh.list@gmail.com (mailing list archive) |
---|---|
State | Deferred, archived |
Headers | show |
Series | ext4: Add atomic writes support for DIO | expand |
On 27/10/2024 18:17, Ritesh Harjani (IBM) wrote: > Let's validate the given constraints for atomic write request. > Otherwise it will fail with -EINVAL. Currently atomic write is only > supported on DIO, so for buffered-io it will return -EOPNOTSUPP. > > Signed-off-by: Ritesh Harjani (IBM)<ritesh.list@gmail.com> Reviewed-by: John Garry <john.g.garry@oracle.com>
diff --git a/fs/ext4/file.c b/fs/ext4/file.c index f14aed14b9cf..a7b9b9751a3f 100644 --- a/fs/ext4/file.c +++ b/fs/ext4/file.c @@ -692,6 +692,20 @@ ext4_file_write_iter(struct kiocb *iocb, struct iov_iter *from) if (IS_DAX(inode)) return ext4_dax_write_iter(iocb, from); #endif + + if (iocb->ki_flags & IOCB_ATOMIC) { + size_t len = iov_iter_count(from); + int ret; + + if (len < EXT4_SB(inode->i_sb)->s_awu_min || + len > EXT4_SB(inode->i_sb)->s_awu_max) + return -EINVAL; + + ret = generic_atomic_write_valid(iocb, from); + if (ret) + return ret; + } + if (iocb->ki_flags & IOCB_DIRECT) return ext4_dio_write_iter(iocb, from); else
Let's validate the given constraints for atomic write request. Otherwise it will fail with -EINVAL. Currently atomic write is only supported on DIO, so for buffered-io it will return -EOPNOTSUPP. Signed-off-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com> --- fs/ext4/file.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+)