ext4: clarify handling of unwritten bh in __ext4_block_zero_page_range()
authorOjaswin Mujoo <ojaswin@linux.ibm.com>
Wed, 1 Nov 2023 16:38:11 +0000 (22:08 +0530)
committerTheodore Ts'o <tytso@mit.edu>
Fri, 5 Jan 2024 04:28:47 +0000 (23:28 -0500)
commitc6bfd724098457a1162a7b9fef07af176720055b
tree0449013b4357346efed3edee3dd0d0bdc201e1d1
parent92573369144f40397e8514440afdf59f24905b40
ext4: clarify handling of unwritten bh in __ext4_block_zero_page_range()

As an optimization, I was trying to work on exiting early from this
function if dealing with unwritten extent since they anyways read 0.
However, it was realised that there are certain code paths that can
end up calling ext4_block_zero_page_range() for an unwritten bh that
might still have data in pagecache. In this case, we can't exit early
and we do require to process the bh and zero out the pagecache to ensure
that a writeback can't kick in at a later time and flush the stale
pagecache to disk.

Since, adding the logic to exit early for unwritten bh was turning out
to be much more nuanced and the current code already handles it well,
just add a comment to explicitly document this behavior.

Suggested-by: Jan Kara <jack@suse.cz>
Signed-off-by: Ojaswin Mujoo <ojaswin@linux.ibm.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Link: https://lore.kernel.org/r/d859b7ae5fe42e6626479b91ed9f4da3aae4c597.1698856309.git.ojaswin@linux.ibm.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
fs/ext4/inode.c