ext4: Add atomic writes support for DIO
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v4 Latest4 patches 8 repliesIn review
- v34 patches 8 repliesSuperseded
- v24 patches 7 repliesSuperseded
Earlier versions · 1
| Version | Posted | Patches | Replies | Status |
|---|---|---|---|---|
| v1 | 6 patches | 32 replies | Superseded |
Changes in v4 from the cover letter
=========
1. Patch-1 changes the helper function from ext4_can_atomic_write() to ext4_inode_can_atomic_write() based on suggestions from Darrick and John. Patch-3 then goes and uses it.
2. Patch-4 adds an inline helper ext4_want_directio_fallback() which simplifies the logic checks and inherently fixes condition on when to return -ENOTBLK which otherwise was always returning true for any write or directio in ext4_iomap_end(). It was ok since ext4 only supports direct-io via iomap.
[v3]: https://lore.kernel.org/linux-xfs/[email protected]/
Patches in v4 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/4 | ext4: Add statx support for atomic writesfs/ fs/ fs/ | +53 | 4 replies | |
| 2/4 | ext4: Check for atomic writes support in write iterfs/ | +14 | 1 reply | |
| 3/4 | ext4: Support setting FMODE_CAN_ATOMIC_WRITEfs/ | +3 | 1 reply | |
| 4/4 | ext4: Do not fallback to buffered-io for DIO atomic writefs/ fs/ | +29 | 2 replies |
Reviews trailers per patch
All 4 patches have a Reviewed-by or Acked-by.
| Patch | John Garry | Darrick J. Wong | Jan Kara |
|---|---|---|---|
| 1/4 | R-b | R-b | R-b |
| 2/4 | R-b | R-b | R-b |
| 3/4 | R-b | R-b | R-b |
| 4/4 | R-b | R-b |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 3 reviewers.
Cover letter [PATCH v4 0/4] ext4: Add atomic writes support for DIO
v3 -> v4:
=========
1. Patch-1 changes the helper function from ext4_can_atomic_write() to ext4_inode_can_atomic_write() based on suggestions from Darrick and John. Patch-3 then goes and uses it.
2. Patch-4 adds an inline helper ext4_want_directio_fallback() which simplifies the logic checks and inherently fixes condition on when to return -ENOTBLK which otherwise was always returning true for any write or directio in ext4_iomap_end(). It was ok since ext4 only supports direct-io via iomap.
[v3]: https://lore.kernel.org/linux-xfs/[email protected]/
(Note as mentioned below as well this is built on top of John XFS atomic series [2]) [2]: https://lore.kernel.org/linux-xfs/[email protected]/
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/[email protected]/
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/[email protected]
[2]: https://lore.kernel.org/linux-xfs/[email protected]/
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/[email protected]/
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/[email protected]/
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 | 10 ++++++++++ fs/ext4/file.c | 24 ++++++++++++++++++++++++ fs/ext4/inode.c | 39 ++++++++++++++++++++++++++++++++++----- fs/ext4/super.c | 31 +++++++++++++++++++++++++++++++ 4 files changed, 99 insertions(+), 5 deletions(-)
--
2.46.0