As per discussion with Jan here [1], this patchset intends to exit early from __ext4_block_zero_page_range() incase the block we are about to zero (partially) is unwritten and unmapped, since such a block doesn't require zeroing. Further, also make sure that calls to ext4_zero_partial_blocks() truncate the page cache completely beforehand, so that they don't rely on ext4_zero_partial_block() -> __ext4_block_zero_page_range() to zero out non block aligned edges of pagecache. Reviews and comments are appreciated! Regards, ojaswin [1] https://lore.kernel.org/linux-ext4/20230914141920.lw2nlpzhcxwuz2y6@quack3/ Ojaswin Mujoo (3): ext4: treat end of range as exclusive in ext4_zero_range() ext4: truncate complete range in pagecache before calling ext4_zero_partial_blocks() ext4: Skip unwritten buffers in __ext4_block_zero_page_range() fs/ext4/extents.c | 20 +++++++++++++------- fs/ext4/inode.c | 7 +++++-- 2 files changed, 18 insertions(+), 9 deletions(-) -- 2.39.3