Hi all, Here's v4 of the incremental advance series. No major changes here.. a couple patches have been reordered in the series and patch 3 in v3 has been split up into several smaller patches. Thoughts, reviews, flames appreciated. Brian v4: - Reordered patches 1 and 2 to keep iter advance cleanups together. - Split patch 3 from v3 into patches 3-6. v3: https://lore.kernel.org/linux-fsdevel/20250130170949.916098-1-bfoster@xxxxxxxxxx/ - Code style and comment fixups. - Variable type fixups and rework of iomap_iter_advance() to return error/length separately. - Advance the iter on unshare and zero range skip cases instead of returning length. v2: https://lore.kernel.org/linux-fsdevel/20250122133434.535192-1-bfoster@xxxxxxxxxx/ - More refactoring of iomap_iter[_advance]() logic. Lifted out iter continuation and stale logic and improved comments. - Renamed some poorly named helpers and variables. - Return remaining length for current iter from _iter_advance() and use appropriately. v1: https://lore.kernel.org/linux-fsdevel/20241213143610.1002526-1-bfoster@xxxxxxxxxx/ - Reworked and fixed a bunch of functional issues. RFC: https://lore.kernel.org/linux-fsdevel/20241125140623.20633-1-bfoster@xxxxxxxxxx/ Brian Foster (10): iomap: factor out iomap length helper iomap: split out iomap check and reset logic from iter advance iomap: refactor iomap_iter() length check and tracepoint iomap: lift error code check out of iomap_iter_advance() iomap: lift iter termination logic from iomap_iter_advance() iomap: export iomap_iter_advance() and return remaining length iomap: support incremental iomap_iter advances iomap: advance the iter directly on buffered writes iomap: advance the iter directly on unshare range iomap: advance the iter directly on zero range fs/iomap/buffered-io.c | 67 +++++++++++++-------------- fs/iomap/iter.c | 102 ++++++++++++++++++++++++++--------------- include/linux/iomap.h | 27 +++++++++-- 3 files changed, 119 insertions(+), 77 deletions(-) -- 2.48.1