Currently the atomic write unit min and max is fixed at the FS blocksize for xfs and ext4. This series expands support to allow multiple FS blocks to be written atomically. To allow multiple blocks be written atomically, the fs must ensure blocks are allocated with some alignment and granularity. For xfs, today only rtvol provides this through rt_extsize. So initial support for large atomic writes will be for rtvol here. Support can easily be expanded to regular files through the proposed forcealign feature. An atomic write which spans mixed unwritten and mapped extents will be required to have the unwritten extents pre-zeroed, which will be supported in iomap. Based on v6.13-rc2. Patches available at the following: https://github.com/johnpgarry/linux/tree/atomic-write-large-atomics-v6.13-v2 Changes since v1: - Add extent zeroing support - Rebase John Garry (6): iomap: Increase iomap_dio_zero() size limit iomap: Add zero unwritten mappings dio support xfs: Add extent zeroing support for atomic writes xfs: Switch atomic write size check in xfs_file_write_iter() xfs: Add RT atomic write unit max to xfs_mount xfs: Update xfs_get_atomic_write_attr() for large atomic writes Ritesh Harjani (IBM) (1): iomap: Lift blocksize restriction on atomic writes fs/iomap/direct-io.c | 100 +++++++++++++++++++++++++++++++++++++---- fs/xfs/libxfs/xfs_sb.c | 3 ++ fs/xfs/xfs_file.c | 97 ++++++++++++++++++++++++++++++++++++--- fs/xfs/xfs_iops.c | 21 ++++++++- fs/xfs/xfs_iops.h | 2 + fs/xfs/xfs_mount.h | 1 + fs/xfs/xfs_rtalloc.c | 25 +++++++++++ fs/xfs/xfs_rtalloc.h | 4 ++ include/linux/iomap.h | 3 ++ 9 files changed, 239 insertions(+), 17 deletions(-) -- 2.31.1