v2 -> v3: ========== 1. Patch-1 adds an "experimental" string in dmesg log during mount when EXT4 detects that it is capable of doing DIO atomic writes on a given device with min and max unit details. 2. Patch-4 has been updated to avoid returning -ENOTBLK (in ext4_iomap_end) if the request belongs to atomic write. This patch also adds a WARN_ON_ONCE() if atomic write ever fallback to buffered-io (to catch any unwanted bugs in the future). More details in the commit log of patch-4. 3. Collected RBs tag from John for Patch 2 & 3. [v2]: https://lore.kernel.org/linux-ext4/cover.1729944406.git.ritesh.list@xxxxxxxxx/ Previous cover letter log: In v2, we had split the series and this one only takes care of atomic writes for single fsblock. That means for now this gets only enabled on bs < ps systems on ext4. Enablement of atomic writes for bigalloc (multi-fsblock support) is still under discussion and may require general consensus within the filesystem community [1]. This series adds the base feature support to enable atomic writes in direct-io path for ext4. We advertise the minimum and the maximum atomic write unit sizes via statx on a regular file. This series allows users to utilize atomic write support using - 1. on bs < ps systems via - mkfs.ext4 -F -b 16384 /dev/sda This can then be utilized using - xfs_io -fdc "pwrite -V 1 -A -b16k 0 16k" /mnt/f1 This is built on top of John's DIO atomic write series for XFS [2]. The VFS and block layer enablement for atomic writes were merged already. [1]: https://lore.kernel.org/linux-ext4/87jzdvmqfz.fsf@xxxxxxxxx [2]: https://lore.kernel.org/linux-xfs/20241019125113.369994-1-john.g.garry@xxxxxxxxxx/ Changelogs: =========== PATCH -> PATCH v2: - addressed review comments from John and Darrick. - renamed ext4_sb_info variables names: fs_awu* -> s_awu* - [PATCH]: https://lore.kernel.org/linux-ext4/cover.1729825985.git.ritesh.list@xxxxxxxxx/ RFC -> PATCH: - Dropped RFC tag - Last RFC was posted a while ago but back then a lot of VFS and block layer interfaces were still not merged. Those are now merged, thanks to John and everyone else. - [RFC] - https://lore.kernel.org/linux-ext4/cover.1709356594.git.ritesh.list@xxxxxxxxx/ Ritesh Harjani (IBM) (4): ext4: Add statx support for atomic writes ext4: Check for atomic writes support in write iter ext4: Support setting FMODE_CAN_ATOMIC_WRITE ext4: Do not fallback to buffered-io for DIO atomic write fs/ext4/ext4.h | 9 +++++++++ fs/ext4/file.c | 24 ++++++++++++++++++++++++ fs/ext4/inode.c | 28 +++++++++++++++++++++++----- fs/ext4/super.c | 31 +++++++++++++++++++++++++++++++ 4 files changed, 87 insertions(+), 5 deletions(-) -- 2.46.0