[PATCH 0/3] Optimize __ext4_block_zero_page_range() for unwritten buffers

From: Ojaswin Mujoo
Date: Fri Sep 29 2023 - 10:11:01 EST


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