Hi all, Here's v5 of the incremental iter advance series. The only change here is to fix a transient factoring bug in the split up of the iter_advance() rework that occurred in v4. Thoughts, reviews, flames appreciated. Brian v5: - Fixed refactoring bug in v4 by pulling 'processed' local var into patch 4. v4: https://lore.kernel.org/linux-fsdevel/20250204133044.80551-1-bfoster@xxxxxxxxxx/ - 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