linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v8 0/7] block atomic writes for xfs
@ 2024-10-15  9:01 John Garry
  2024-10-15  9:01 ` [PATCH v8 1/7] block/fs: Pass an iocb to generic_atomic_write_valid() John Garry
                   ` (6 more replies)
  0 siblings, 7 replies; 16+ messages in thread
From: John Garry @ 2024-10-15  9:01 UTC (permalink / raw)
  To: axboe, brauner, djwong, viro, jack, dchinner, hch, cem
  Cc: linux-block, linux-kernel, linux-xfs, linux-fsdevel, hare,
	martin.petersen, catherine.hoang, mcgrof, ritesh.list, ojaswin,
	John Garry

This series expands atomic write support to filesystems, specifically
XFS.

Initially we will only support writing exactly 1x FS block atomically.

Since we can now have FS block size > PAGE_SIZE for XFS, we can write
atomically write 4K+ blocks on x86.

No special per-inode flag is required for enabling writing 1x F block.
In future, to support writing more than one FS block atomically, a new FS
XFLAG flag may then introduced - like FS_XFLAG_BIG_ATOMICWRITES. This
would depend on a feature like forcealign.

So if we format the FS for 16K FS block size:
mkfs.xfs -b size=16384 /dev/sda

The statx reports atomic write unit min/max = FS block size:
$xfs_io -c statx filename
...
stat.stx_atomic_write_unit_min = 16384
stat.stx_atomic_write_unit_max = 16384
stat.stx_atomic_write_segments_max = 1
...

Baseline is 77bfe1b11ea0 (tag: xfs-6.12-fixes-3, xfs/xfs-6.12-fixesC,
xfs/for-next) xfs: fix a typo

Patches for this series can be found at:
https://github.com/johnpgarry/linux/tree/atomic-writes-v6.12-fs-v8

Changes since v7:
- Drop FS_XFLAG_ATOMICWRITES
- Reorder block/fs patches and add fixes tags (Christoph)
- Add RB tag from Christoph (Thanks!)
- Rebase

Changes since v6:
- Add iomap documentation update (Darrick)
- Drop reflink restriction (Darrick, Christoph)
- Catch XFS buffered IO fallback (Darrick)
- Check IOCB_DIRECT in generic_atomic_write_valid()
- Tweaks to coding style (Darrick)
- Add RB tags from Darrick and Christoph (thanks!)

John Garry (7):
  block/fs: Pass an iocb to generic_atomic_write_valid()
  fs/block: Check for IOCB_DIRECT in generic_atomic_write_valid()
  fs: Export generic_atomic_write_valid()
  fs: iomap: Atomic write support
  xfs: Support atomic write for statx
  xfs: Validate atomic writes
  xfs: Support setting FMODE_CAN_ATOMIC_WRITE

 .../filesystems/iomap/operations.rst          | 11 ++++++
 block/fops.c                                  | 22 ++++++-----
 fs/iomap/direct-io.c                          | 38 +++++++++++++++++--
 fs/iomap/trace.h                              |  3 +-
 fs/read_write.c                               | 16 +++++---
 fs/xfs/xfs_buf.c                              |  7 ++++
 fs/xfs/xfs_buf.h                              |  3 ++
 fs/xfs/xfs_file.c                             | 10 +++++
 fs/xfs/xfs_inode.h                            | 15 ++++++++
 fs/xfs/xfs_iops.c                             | 25 ++++++++++++
 include/linux/fs.h                            |  2 +-
 include/linux/iomap.h                         |  1 +
 12 files changed, 131 insertions(+), 22 deletions(-)

-- 
2.31.1


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

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

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-15  9:01 [PATCH v8 0/7] block atomic writes for xfs John Garry
2024-10-15  9:01 ` [PATCH v8 1/7] block/fs: Pass an iocb to generic_atomic_write_valid() John Garry
2024-10-15  9:01 ` [PATCH v8 2/7] fs/block: Check for IOCB_DIRECT in generic_atomic_write_valid() John Garry
2024-10-15  9:01 ` [PATCH v8 3/7] fs: Export generic_atomic_write_valid() John Garry
2024-10-15  9:01 ` [PATCH v8 4/7] fs: iomap: Atomic write support John Garry
2024-10-15 12:12   ` Christoph Hellwig
2024-10-15 12:24     ` John Garry
2024-10-15  9:01 ` [PATCH v8 5/7] xfs: Support atomic write for statx John Garry
2024-10-15 12:15   ` Christoph Hellwig
2024-10-15 12:22     ` John Garry
2024-10-15 12:33       ` Christoph Hellwig
2024-10-15  9:01 ` [PATCH v8 6/7] xfs: Validate atomic writes John Garry
2024-10-15 12:16   ` Christoph Hellwig
2024-10-15 12:25     ` John Garry
2024-10-15  9:01 ` [PATCH v8 7/7] xfs: Support setting FMODE_CAN_ATOMIC_WRITE John Garry
2024-10-15 12:16   ` Christoph Hellwig

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).