mbox series

[v3,0/4] iomap: zero range flush fixes

Message ID 20241108124246.198489-1-bfoster@redhat.com (mailing list archive)
Headers show
Series iomap: zero range flush fixes | expand

Message

Brian Foster Nov. 8, 2024, 12:42 p.m. UTC
Hi all,

Here's v3 of the change to improve zero range performance in the case of
frequent size extensions leading to excessive flushing. The main
differences from v2 are the addition of patch 1 to replace the need for
an iter reinit helper, some minor cleanups, and the addition of patch 4
to detect unexpected uses of zero range now that it no longer updates
i_size.

Thoughts, reviews, flames appreciated.

Brian

v3:
- Added new patch 1 to always reset per-iter state in iomap_iter.
- Dropped iomap_iter_init() helper.
- Misc. cleanups.
- Appended patch 4 to warn on zeroing beyond EOF.
v2: https://lore.kernel.org/linux-fsdevel/20241031140449.439576-1-bfoster@redhat.com/
- Added patch 1 to lift zeroed mapping handling code into caller.
- Split unaligned start range handling at the top level.
- Retain existing conditional flush behavior (vs. unconditional flush)
  for the remaining range.
v1: https://lore.kernel.org/linux-fsdevel/20241023143029.11275-1-bfoster@redhat.com/

Brian Foster (4):
  iomap: reset per-iter state on non-error iter advances
  iomap: lift zeroed mapping handling into iomap_zero_range()
  iomap: elide flush from partial eof zero range
  iomap: warn on zero range of a post-eof folio

 fs/iomap/buffered-io.c | 89 ++++++++++++++++++++++--------------------
 fs/iomap/iter.c        | 11 +++---
 2 files changed, 51 insertions(+), 49 deletions(-)