From: Brian Foster <bfoster@redhat.com>
To: linux-fsdevel@vger.kernel.org, linux-xfs@vger.kernel.org
Subject: [PATCH v2 0/5] iomap, xfs: improve zero range flushing and lookup
Date: Thu, 29 Jan 2026 10:50:23 -0500 [thread overview]
Message-ID: <20260129155028.141110-1-bfoster@redhat.com> (raw)
Hi all,
Here's v2 of the iomap zero range flush cleanup patches. Patch 1 in v1
has already been merged separately, so that's dropped off. Otherwise no
major changes from v1. The remaining patches here lift the flush into
XFS, fix up the insert range issue that the flush implicitly suppressed,
streamlines the .iomap_begin() logic a bit, and finally replaces the
just lifted flush with proper use of the folio batch mechanism. The end
result is that the flush remains in iomap zero range purely as a
fallback for callers who do not provide a folio batch for pagecache
dirty unwritten mappings.
WRT some of the discussion on v1.. I looked into changing how COW blocks
over data fork holes are reported in XFS as a first step, but I
eventually ran into complexity that would essentially duplicate some of
the hacks I'm trying to clean up. For example, we'd have to determine
whether to report as a hole or "data" mapping based on pagecache state,
and this series adds some of that by the end by explicitly doing the
dirty folio lookup in this scenario. I'll plan to revisit this on top of
this series as a standalone XFS improvement, but haven't got there yet.
The other thing that is a little more annoying was failure of the idea
to essentially prep the shift where patch 2 adds an EOF folio flush [1].
This ordering leads to potential pagecache inconsistency because the
i_size update can zero and repopulate pagecache. I'm open to other ideas
here, but otherwise haven't been able to think of anything more
clever/simple (including futzing around for suggestions with AI). All in
all I still think this is more clear having the flush isolated in insert
range where it is actually required than having a flush in iomap
indirectly suppress the problem.
Thoughts, reviews, flames appreciated.
Brian
[1] https://lore.kernel.org/linux-fsdevel/20251105001445.GW196370@frogsfrogsfrogs/
v2:
- Patch 1 from v1 merged separately.
- Fixed up iomap_fill_dirty_folios() call in patch 5.
v1: https://lore.kernel.org/linux-fsdevel/20251016190303.53881-1-bfoster@redhat.com/
Brian Foster (5):
iomap, xfs: lift zero range hole mapping flush into xfs
xfs: flush eof folio before insert range size update
xfs: look up cow fork extent earlier for buffered iomap_begin
xfs: only flush when COW fork blocks overlap data fork holes
xfs: replace zero range flush with folio batch
fs/iomap/buffered-io.c | 6 +--
fs/xfs/xfs_file.c | 17 +++++++++
fs/xfs/xfs_iomap.c | 87 ++++++++++++++++++++++++++++++------------
3 files changed, 81 insertions(+), 29 deletions(-)
--
2.52.0
next reply other threads:[~2026-01-29 15:50 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-29 15:50 Brian Foster [this message]
2026-01-29 15:50 ` [PATCH v2 1/5] iomap, xfs: lift zero range hole mapping flush into xfs Brian Foster
2026-02-10 16:15 ` Christoph Hellwig
2026-02-10 19:14 ` Brian Foster
2026-02-11 15:36 ` Christoph Hellwig
2026-02-13 6:06 ` Christoph Hellwig
2026-02-13 17:37 ` Brian Foster
2026-03-02 19:02 ` Brian Foster
2026-03-03 14:37 ` Christoph Hellwig
2026-03-03 19:00 ` Brian Foster
2026-03-04 13:13 ` Christoph Hellwig
2026-03-04 14:17 ` Brian Foster
2026-03-04 14:41 ` Christoph Hellwig
2026-03-04 15:02 ` Brian Foster
2026-03-04 17:04 ` Brian Foster
2026-03-05 14:11 ` Christoph Hellwig
2026-03-05 15:06 ` Brian Foster
2026-03-05 16:10 ` Christoph Hellwig
2026-02-13 10:20 ` Nirjhar Roy (IBM)
2026-02-13 16:24 ` Darrick J. Wong
2026-02-18 17:41 ` Nirjhar Roy (IBM)
2026-01-29 15:50 ` [PATCH v2 2/5] xfs: flush eof folio before insert range size update Brian Foster
2026-02-10 16:16 ` Christoph Hellwig
2026-02-10 19:14 ` Brian Foster
2026-01-29 15:50 ` [PATCH v2 3/5] xfs: look up cow fork extent earlier for buffered iomap_begin Brian Foster
2026-02-10 16:17 ` Christoph Hellwig
2026-01-29 15:50 ` [PATCH v2 4/5] xfs: only flush when COW fork blocks overlap data fork holes Brian Foster
2026-02-10 16:19 ` Christoph Hellwig
2026-02-10 19:18 ` Brian Foster
2026-02-17 15:06 ` Nirjhar Roy (IBM)
2026-02-18 15:37 ` Brian Foster
2026-02-18 17:40 ` Nirjhar Roy (IBM)
2026-01-29 15:50 ` [PATCH v2 5/5] xfs: replace zero range flush with folio batch Brian Foster
2026-02-10 16:21 ` Christoph Hellwig
2026-02-10 19:19 ` Brian Foster
2026-02-11 15:41 ` Christoph Hellwig
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260129155028.141110-1-bfoster@redhat.com \
--to=bfoster@redhat.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-xfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.