On Fri 01-11-24 12:20:52, 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. > > Reviewed-by: John Garry <john.g.garry@xxxxxxxxxx> > Reviewed-by: Darrick J. Wong <djwong@xxxxxxxxxx> > Signed-off-by: Ritesh Harjani (IBM) <ritesh.list@xxxxxxxxx> Looks good. Feel free to add: Reviewed-by: Jan Kara <jack@xxxxxxx> Honza > --- > fs/ext4/file.c | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > 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 > -- > 2.46.0 > -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR