public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCHBOMB] xfsprogs: utility changes for 6.12
@ 2024-10-25  6:26 Darrick J. Wong
  2024-10-25  6:31 ` Darrick J. Wong
                   ` (5 more replies)
  0 siblings, 6 replies; 53+ messages in thread
From: Darrick J. Wong @ 2024-10-25  6:26 UTC (permalink / raw)
  To: Andrey Albershteyn; +Cc: xfs, Christoph Hellwig

Hi Andrey,

Here are all the changes to the xfsprogs utilities that I'd like to get
in for 6.12.  First we add support for the new exchange-range ioctl,
then wire up xfs_db support for realtime volumes in preparation for
future rt modernization.  Then there's some refactoring of mkfs, and a
bug fix for xfs_scrub_all.

None of these patches are reviewed.

--D

^ permalink raw reply	[flat|nested] 53+ messages in thread
* [PATCHSET v31.3 2/7] xfsprogs: atomic file content commits
@ 2024-10-31 23:07 Darrick J. Wong
  2024-10-31 23:20 ` [PATCH 3/7] libxfs: remove unused xfs_inode fields Darrick J. Wong
  0 siblings, 1 reply; 53+ messages in thread
From: Darrick J. Wong @ 2024-10-31 23:07 UTC (permalink / raw)
  To: djwong, aalbersh; +Cc: linux-xfs

Hi all,

This series creates XFS_IOC_START_COMMIT and XFS_IOC_COMMIT_RANGE ioctls
to perform the exchange only if the target file has not been changed
since a given sampling point.

This new functionality uses the mechanism underlying EXCHANGE_RANGE to
stage and commit file updates such that reader programs will see either
the old contents or the new contents in their entirety, with no chance
of torn writes.  A successful call completion guarantees that the new
contents will be seen even if the system fails.  The pair of ioctls
allows userspace to perform what amounts to a compare and exchange
operation on entire file contents.

Note that there are ongoing arguments in the community about how best to
implement some sort of file data write counter that nfsd could also use
to signal invalidations to clients.  Until such a thing is implemented,
this patch will rely on ctime/mtime updates.

If you're going to start using this code, I strongly recommend pulling
from my git trees, which are linked below.

Comments and questions are, as always, welcome.

kernel git tree:
https://git.kernel.org/cgit/linux/kernel/git/djwong/xfs-linux.git/log/?h=atomic-file-commits-6.12

xfsprogs git tree:
https://git.kernel.org/cgit/linux/kernel/git/djwong/xfsprogs-dev.git/log/?h=atomic-file-commits-6.12
---
Commits in this patchset:
 * man: document file range commit ioctls
 * libfrog: add support for commit range ioctl family
 * libxfs: remove unused xfs_inode fields
 * libxfs: validate inumber in xfs_iget
 * xfs_fsr: port to new file exchange library function
 * xfs_io: add a commitrange option to the exchangerange command
 * xfs_io: add atomic file update commands to exercise file commit range
---
 fsr/xfs_fsr.c                     |   74 +++----
 include/xfs_inode.h               |    4 
 io/exchrange.c                    |  390 +++++++++++++++++++++++++++++++++++++
 io/io.h                           |    4 
 io/open.c                         |   27 ++-
 libfrog/file_exchange.c           |  194 ++++++++++++++++++
 libfrog/file_exchange.h           |   10 +
 libxfs/inode.c                    |    2 
 man/man2/ioctl_xfs_commit_range.2 |  296 ++++++++++++++++++++++++++++
 man/man2/ioctl_xfs_fsgeometry.2   |    2 
 man/man2/ioctl_xfs_start_commit.2 |    1 
 man/man8/xfs_io.8                 |   35 +++
 12 files changed, 983 insertions(+), 56 deletions(-)
 create mode 100644 man/man2/ioctl_xfs_commit_range.2
 create mode 100644 man/man2/ioctl_xfs_start_commit.2


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

end of thread, other threads:[~2024-10-31 23:20 UTC | newest]

Thread overview: 53+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-25  6:26 [PATCHBOMB] xfsprogs: utility changes for 6.12 Darrick J. Wong
2024-10-25  6:31 ` Darrick J. Wong
2024-10-25  6:31 ` [PATCHSET v31.2 1/5] xfsprogs: atomic file content commits Darrick J. Wong
2024-10-25  6:32   ` [PATCH 1/7] man: document file range commit ioctls Darrick J. Wong
2024-10-28  8:31     ` Christoph Hellwig
2024-10-25  6:32   ` [PATCH 2/7] libfrog: add support for commit range ioctl family Darrick J. Wong
2024-10-28  8:32     ` Christoph Hellwig
2024-10-25  6:33   ` [PATCH 3/7] libxfs: remove unused xfs_inode fields Darrick J. Wong
2024-10-28  8:32     ` Christoph Hellwig
2024-10-25  6:33   ` [PATCH 4/7] libxfs: validate inumber in xfs_iget Darrick J. Wong
2024-10-28  8:32     ` Christoph Hellwig
2024-10-25  6:33   ` [PATCH 5/7] xfs_fsr: port to new file exchange library function Darrick J. Wong
2024-10-28  8:33     ` Christoph Hellwig
2024-10-25  6:34   ` [PATCH 6/7] xfs_io: add a commitrange option to the exchangerange command Darrick J. Wong
2024-10-28  8:33     ` Christoph Hellwig
2024-10-25  6:34   ` [PATCH 7/7] xfs_io: add atomic file update commands to exercise file commit range Darrick J. Wong
2024-10-28  8:33     ` Christoph Hellwig
2024-10-25  6:31 ` [PATCHSET v2.6 2/5] xfs_db: debug realtime geometry Darrick J. Wong
2024-10-25  6:34   ` [PATCH 1/8] xfs_db: support passing the realtime device to the debugger Darrick J. Wong
2024-10-28  8:34     ` Christoph Hellwig
2024-10-25  6:34   ` [PATCH 2/8] xfs_db: report the realtime device when associated with each io cursor Darrick J. Wong
2024-10-28  8:34     ` Christoph Hellwig
2024-10-25  6:35   ` [PATCH 3/8] xfs_db: make the daddr command target the realtime device Darrick J. Wong
2024-10-28  8:35     ` Christoph Hellwig
2024-10-25  6:35   ` [PATCH 4/8] xfs_db: access realtime file blocks Darrick J. Wong
2024-10-28  8:37     ` Christoph Hellwig
2024-10-28 17:50       ` Darrick J. Wong
2024-10-25  6:35   ` [PATCH 5/8] xfs_db: access arbitrary realtime blocks and extents Darrick J. Wong
2024-10-28  8:38     ` Christoph Hellwig
2024-10-28 17:51       ` Darrick J. Wong
2024-10-25  6:35   ` [PATCH 6/8] xfs_db: enable conversion of rt space units Darrick J. Wong
2024-10-28  8:41     ` Christoph Hellwig
2024-10-28 17:58       ` Darrick J. Wong
2024-10-25  6:36   ` [PATCH 7/8] xfs_db: convert rtbitmap geometry Darrick J. Wong
2024-10-28  8:42     ` Christoph Hellwig
2024-10-25  6:36   ` [PATCH 8/8] xfs_db: convert rtsummary geometry Darrick J. Wong
2024-10-28  8:42     ` Christoph Hellwig
2024-10-25  6:31 ` [PATCHSET v2.6 3/5] xfs_metadump: support external devices Darrick J. Wong
2024-10-25  6:36   ` [PATCH 1/1] xfs_db: allow setting current address to log blocks Darrick J. Wong
2024-10-28  8:43     ` Christoph Hellwig
2024-10-25  6:32 ` [PATCHSET v2.6 4/5] mkfs/repair: use new rtbitmap helpers Darrick J. Wong
2024-10-25  6:36   ` [PATCH 1/6] xfs_repair: checking rt free space metadata must happen during phase 4 Darrick J. Wong
2024-10-28  8:43     ` Christoph Hellwig
2024-10-25  6:37   ` [PATCH 2/6] xfs_repair: use xfs_validate_rt_geometry Darrick J. Wong
2024-10-25  6:37   ` [PATCH 3/6] mkfs: remove a pointless rtfreesp_init forward declaration Darrick J. Wong
2024-10-25  6:37   ` [PATCH 4/6] mkfs: use xfs_rtfile_initialize_blocks Darrick J. Wong
2024-10-25  6:37   ` [PATCH 5/6] xfs_repair: use libxfs_rtfile_initialize_blocks Darrick J. Wong
2024-10-25  6:38   ` [PATCH 6/6] xfs_repair: stop preallocating blocks in mk_rbmino and mk_rsumino Darrick J. Wong
2024-10-25  6:32 ` [PATCHSET v31.2 5/5] xfs_scrub_all: bug fix for 6.12 Darrick J. Wong
2024-10-25  6:38   ` [PATCH 1/1] xfs_scrub_all: wait for services to start activating Darrick J. Wong
2024-10-28  8:44     ` Christoph Hellwig
2024-10-28 16:45       ` Darrick J. Wong
  -- strict thread matches above, loose matches on Subject: below --
2024-10-31 23:07 [PATCHSET v31.3 2/7] xfsprogs: atomic file content commits Darrick J. Wong
2024-10-31 23:20 ` [PATCH 3/7] libxfs: remove unused xfs_inode fields Darrick J. Wong

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox