linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* fix stale delalloc punching for COW I/O v5
@ 2024-10-08  8:59 Christoph Hellwig
  2024-10-08  8:59 ` [PATCH 01/10] iomap: factor out a iomap_last_written_block helper Christoph Hellwig
                   ` (11 more replies)
  0 siblings, 12 replies; 14+ messages in thread
From: Christoph Hellwig @ 2024-10-08  8:59 UTC (permalink / raw)
  To: Carlos Maiolino, Christian Brauner, Darrick J. Wong
  Cc: linux-xfs, linux-fsdevel

Hi all,

this is another fallout from the zoned XFS work, which stresses the XFS
COW I/O path very heavily.  It affects normal I/O to reflinked files as
well, but is very hard to hit there.

The main problem here is that we only punch out delalloc reservations
from the data fork, but COW I/O places delalloc extents into the COW
fork, which means that it won't get punched out forshort writes.


Changes since v4:
 - unshare also already holds the invalidate_lock as found out by recent
   fsstress enhancements

Changes since v3:
 - improve two comments

Changes since v2:
 - drop the patches already merged and rebased to latest Linus' tree
 - moved taking invalidate_lock from iomap to the caller to avoid a
   too complicated locking protocol
 - better document the xfs_file_write_zero_eof return value
 - fix a commit log typo

Changes since v1:
 - move the already reviewed iomap prep changes to the beginning in case
   Christian wants to take them ASAP
 - take the invalidate_lock for post-EOF zeroing so that we have a
   consistent locking pattern for zeroing.

Diffstat:
 Documentation/filesystems/iomap/operations.rst |    2 
 fs/iomap/buffered-io.c                         |  111 ++++++-------------
 fs/xfs/xfs_aops.c                              |    4 
 fs/xfs/xfs_bmap_util.c                         |   10 +
 fs/xfs/xfs_bmap_util.h                         |    2 
 fs/xfs/xfs_file.c                              |  146 +++++++++++++++----------
 fs/xfs/xfs_iomap.c                             |   67 +++++++----
 include/linux/iomap.h                          |   20 ++-
 8 files changed, 198 insertions(+), 164 deletions(-)

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2024-10-15 11:09 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-08  8:59 fix stale delalloc punching for COW I/O v5 Christoph Hellwig
2024-10-08  8:59 ` [PATCH 01/10] iomap: factor out a iomap_last_written_block helper Christoph Hellwig
2024-10-08  8:59 ` [PATCH 02/10] iomap: remove iomap_file_buffered_write_punch_delalloc Christoph Hellwig
2024-10-08  8:59 ` [PATCH 03/10] iomap: move locking out of iomap_write_delalloc_release Christoph Hellwig
2024-10-08  8:59 ` [PATCH 04/10] xfs: factor out a xfs_file_write_zero_eof helper Christoph Hellwig
2024-10-08  8:59 ` [PATCH 05/10] xfs: take XFS_MMAPLOCK_EXCL xfs_file_write_zero_eof Christoph Hellwig
2024-10-08  8:59 ` [PATCH 06/10] xfs: IOMAP_ZERO and IOMAP_UNSHARE already hold invalidate_lock Christoph Hellwig
2024-10-08 17:39   ` Darrick J. Wong
2024-10-08  8:59 ` [PATCH 07/10] xfs: support the COW fork in xfs_bmap_punch_delalloc_range Christoph Hellwig
2024-10-08  8:59 ` [PATCH 08/10] xfs: share more code in xfs_buffered_write_iomap_begin Christoph Hellwig
2024-10-08  8:59 ` [PATCH 09/10] xfs: set IOMAP_F_SHARED for all COW fork allocations Christoph Hellwig
2024-10-08  8:59 ` [PATCH 10/10] xfs: punch delalloc extents from the COW fork for COW writes Christoph Hellwig
2024-10-11 10:59 ` fix stale delalloc punching for COW I/O v5 Carlos Maiolino
2024-10-15 11:09 ` Carlos Maiolino

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).