All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v5 0/9] xfs: pNFS block layout fixes
@ 2026-10-29  2:22 ` Daejun Park via B4 Relay
  0 siblings, 0 replies; 24+ messages in thread
From: Daejun Park @ 2026-10-29  2:22 UTC (permalink / raw)
  To: Carlos Maiolino, linux-xfs
  Cc: Christoph Hellwig, Darrick J. Wong, Dave Chinner, Pankaj Raghav,
	Chuck Lever, Jeff Layton, Dai Ngo, Sergey Bashirov,
	Andrey Albershteyn, linux-nfs, linux-kernel, stable, Daejun Park

The XFS side of the pNFS block and SCSI layout fixes. A pNFS client
alone can trigger the bugs fixed by patches 1 and 3 to 6. Patch 7
closes a race with a local process writing to a shared mapping.
Patches 8 and 9 make a LAYOUTCOMMIT stable the way fdatasync does.

Patch 3 needs patch 2. Patch 4 should not go without patches 2 and 3,
and patch 6 not without patch 5. Patches 1 to 6 are marked for stable.
XFS_BMAPI_CONVERT_ONLY takes bit 12 of the bmapi flags, which the
fs-verity series [1] also uses.

Tested on nfsd-testing plus this series in QEMU guests. nfsd exported
XFS on an nvmet-tcp namespace to pynfs ([2] and local tests for patches
5 and 6) and the Linux client, with KASAN and lockdep and also with
XFS_DEBUG. fstests -g quick ran on a local XFS. Each patch builds with
W=1 on for-next.

[1] https://lore.kernel.org/r/20261002223705.2175542-14-aalbersh@kernel.org
[2] https://lore.kernel.org/r/20261014-pynfs-block-commit-v1-0-1723979f495f@samsung.com

---
Changes in v5:
- Cap the block count in xfs_iomap_write_direct() instead of
  xfs_fs_map_blocks().
- Clamp the layout length with min_t(), as min() rejects u64 against
  loff_t.
- Assert that XFS_BMAPI_CONVERT_ONLY allocated nothing.
- Shorter commit messages, with test results below the --- line.

Changes in v4:
- Limit a pNFS allocation to XFS_MAX_BMBT_EXTLEN blocks instead of
  refusing a count whose reservation would wrap.

Changes in v3:
- Post the XFS pNFS patches as one series.
- Split XFS_BMAPI_CONVERT_ONLY from its pNFS user.
- Return -ENOSR when nothing is mapped, and commit the transaction
  instead of cancelling it.
- Add the datasync arguments to xfs_log_force_inode() itself.

---
Daejun Park (9):
      xfs: mark the inode preallocated for pNFS write layouts past EOF
      xfs: add a flag to convert unwritten extents without allocating blocks
      xfs: refuse a pNFS LAYOUTCOMMIT of a range without blocks
      xfs: clamp a pNFS LAYOUTCOMMIT extent before computing its end
      xfs: cap the block count of xfs_iomap_write_direct() at one extent
      xfs: clamp the pNFS layout range to the maximum file size
      xfs: take the invalidate lock while mapping a pNFS layout
      xfs: add datasync and log_flushed arguments to xfs_log_force_inode()
      xfs: make pNFS LAYOUTCOMMIT stable the way fdatasync does

 fs/xfs/libxfs/xfs_bmap.c | 14 +++++++--
 fs/xfs/libxfs/xfs_bmap.h | 10 +++++-
 fs/xfs/xfs_export.c      |  2 +-
 fs/xfs/xfs_file.c        | 52 +++---------------------------
 fs/xfs/xfs_inode.c       | 36 ++++++++++++++++++---
 fs/xfs/xfs_inode.h       |  3 +-
 fs/xfs/xfs_ioend.c       |  2 +-
 fs/xfs/xfs_iomap.c       | 28 +++++++++++++++--
 fs/xfs/xfs_iomap.h       |  3 +-
 fs/xfs/xfs_pnfs.c        | 82 +++++++++++++++++++++++++++++++++---------------
 fs/xfs/xfs_zone_gc.c     |  2 +-
 11 files changed, 147 insertions(+), 87 deletions(-)
---
base-commit: ec8f62cc109a3f596b3c65dc0f1011c209239051
change-id: 20261015-xfs-pnfs-batch-85459210aeeb

Best regards,
-- 
Daejun Park <daejun7.park@samsung.com>


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

end of thread, other threads:[~2026-11-03 12:46 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-29  2:22 [PATCH v5 0/9] xfs: pNFS block layout fixes Daejun Park
2026-10-29  2:22 ` Daejun Park via B4 Relay
2026-10-29  2:22 ` [PATCH v5 1/9] xfs: mark the inode preallocated for pNFS write layouts past EOF Daejun Park
2026-10-29  2:22   ` Daejun Park via B4 Relay
2026-10-29  2:22 ` [PATCH v5 2/9] xfs: add a flag to convert unwritten extents without allocating blocks Daejun Park
2026-10-29  2:22   ` Daejun Park via B4 Relay
2026-10-29  2:23 ` [PATCH v5 3/9] xfs: refuse a pNFS LAYOUTCOMMIT of a range without blocks Daejun Park
2026-10-29  2:23   ` Daejun Park via B4 Relay
2026-10-29  2:23 ` [PATCH v5 4/9] xfs: clamp a pNFS LAYOUTCOMMIT extent before computing its end Daejun Park
2026-10-29  2:23   ` Daejun Park via B4 Relay
2026-10-29  2:23 ` [PATCH v5 5/9] xfs: cap the block count of xfs_iomap_write_direct() at one extent Daejun Park
2026-10-29  2:23   ` Daejun Park via B4 Relay
2026-11-03  5:49   ` Christoph Hellwig
2026-11-03  8:44     ` Carlos Maiolino
2026-11-03 12:46   ` Pankaj Raghav (Samsung)
2026-10-29  2:23 ` [PATCH v5 6/9] xfs: clamp the pNFS layout range to the maximum file size Daejun Park
2026-10-29  2:23   ` Daejun Park via B4 Relay
2026-10-29  2:23 ` [PATCH v5 7/9] xfs: take the invalidate lock while mapping a pNFS layout Daejun Park
2026-10-29  2:23   ` Daejun Park via B4 Relay
2026-10-29  2:23 ` [PATCH v5 8/9] xfs: add datasync and log_flushed arguments to xfs_log_force_inode() Daejun Park
2026-10-29  2:23   ` Daejun Park via B4 Relay
2026-10-29  2:23 ` [PATCH v5 9/9] xfs: make pNFS LAYOUTCOMMIT stable the way fdatasync does Daejun Park
2026-10-29  2:23   ` Daejun Park via B4 Relay
2026-11-03 10:02 ` [PATCH v5 0/9] xfs: pNFS block layout fixes Carlos Maiolino

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.