This patch series addresses the potential problems discussed with Jan Kara regarding the modification rules for mapping extents[1]. Preparing for the buffered I/O conversion for regular files. This change includes: Patch 1-5 fixes problems related to stale extent status entries that may arise during the collapsing of ranges, the insertion of ranges, or file truncation when these operations compete with concurrent writeback, fiemap, or get extent cache. Patch 6-8 adds a helper function to verify whether the context for modifying extents is safe when EXT4_DEBUG is enabled. It primarily checks the inode's i_rwsem and the mapping's invalidate_lock. Patch 9 adds a comment to clarify the rules for loading, mapping, modifying, and removing extents. Please refer to the following patches for details. [1] https://lore.kernel.org/linux-ext4/20241211160047.qnxvodmbzngo3jtr@quack3/ Thanks, Yi. Zhang Yi (9): ext4: ext4: unify EXT4_EX_NOCACHE|NOFAIL flags in ext4_ext_remove_space() ext4: generalize EXT4_GET_BLOCKS_IO_SUBMIT flag usage ext4: prevent stale extent cache entries caused by concurrent I/O writeback ext4: prevent stale extent cache entries caused by concurrent fiemap ext4: prevent stale extent cache entries caused by concurrent get es_cache ext4: factor out is_special_ino() ext4: introduce ext4_check_map_extents_env() debug helper ext4: check env when mapping and modifying extents ext4: clairfy the rules for modifying extents fs/ext4/ext4.h | 26 ++++++++++++--- fs/ext4/extents.c | 54 ++++++++++++++++++++---------- fs/ext4/extents_status.c | 35 ++++++++++++++++++-- fs/ext4/fast_commit.c | 4 ++- fs/ext4/inode.c | 71 +++++++++++++++++++++++++++++++--------- fs/ext4/ioctl.c | 8 ++++- 6 files changed, 157 insertions(+), 41 deletions(-) -- 2.46.1