[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20241019125113.369994-1-john.g.garry@oracle.com>
Date: Sat, 19 Oct 2024 12:51:05 +0000
From: John Garry <john.g.garry@...cle.com>
To: axboe@...nel.dk, brauner@...nel.org, djwong@...nel.org,
viro@...iv.linux.org.uk, jack@...e.cz, dchinner@...hat.com, hch@....de,
cem@...nel.org
Cc: linux-block@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-xfs@...r.kernel.org, linux-fsdevel@...r.kernel.org, hare@...e.de,
martin.petersen@...cle.com, catherine.hoang@...cle.com,
mcgrof@...nel.org, ritesh.list@...il.com, ojaswin@...ux.ibm.com,
John Garry <john.g.garry@...cle.com>
Subject: [PATCH v10 0/8] block atomic writes for xfs
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 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-v10
Changes since v9:
- iomap doc fix (Darrick)
- Add RB tags from Christoph and Darrick (Thanks!)
Changes since v8:
- Add bdev atomic write unit helpers (Christoph)
- Add comment on FS block size limit (Christoph)
- Stylistic improvements (Christoph)
- Add RB tags from Christoph (thanks!)
Changes since v7:
- Drop FS_XFLAG_ATOMICWRITES
- Reorder block/fs patches and add fixes tags (Christoph)
- Add RB tag from Christoph (Thanks!)
- Rebase
John Garry (8):
block/fs: Pass an iocb to generic_atomic_write_valid()
fs/block: Check for IOCB_DIRECT in generic_atomic_write_valid()
block: Add bdev atomic write limits helpers
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 | 12 ++++++
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 | 4 ++
fs/xfs/xfs_file.c | 16 ++++++++
fs/xfs/xfs_inode.h | 15 ++++++++
fs/xfs/xfs_iops.c | 22 +++++++++++
include/linux/blkdev.h | 16 ++++++++
include/linux/fs.h | 2 +-
include/linux/iomap.h | 1 +
13 files changed, 152 insertions(+), 22 deletions(-)
--
2.31.1
Powered by blists - more mailing lists