On Wed 01-11-23 22:08:10, Ojaswin Mujoo wrote: > The call to filemap_write_and_wait_range() assumes the range passed to be > inclusive, so fix the call to make sure we follow that. > > Signed-off-by: Ojaswin Mujoo <ojaswin@xxxxxxxxxxxxx> Looks good to me. Feel free to add: Reviewed-by: Jan Kara <jack@xxxxxxx> Honza > --- > fs/ext4/extents.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c > index 880f383df684..265ae30a51b9 100644 > --- a/fs/ext4/extents.c > +++ b/fs/ext4/extents.c > @@ -4522,7 +4522,8 @@ static long ext4_zero_range(struct file *file, loff_t offset, > * Round up offset. This is not fallocate, we need to zero out > * blocks, so convert interior block aligned part of the range to > * unwritten and possibly manually zero out unaligned parts of the > - * range. > + * range. Here, start and partial_begin are inclusive, end and > + * partial_end are exclusive. > */ > start = round_up(offset, 1 << blkbits); > end = round_down((offset + len), 1 << blkbits); > @@ -4608,7 +4609,8 @@ static long ext4_zero_range(struct file *file, loff_t offset, > * disk in case of crash before zeroing trans is committed. > */ > if (ext4_should_journal_data(inode)) { > - ret = filemap_write_and_wait_range(mapping, start, end); > + ret = filemap_write_and_wait_range(mapping, start, > + end - 1); > if (ret) { > filemap_invalidate_unlock(mapping); > goto out_mutex; > -- > 2.39.3 > -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR