]> git.apps.os.sepia.ceph.com Git - xfstests-dev.git/commit
ext4: Test atomic write and ioend codepaths with bigalloc
authorRitesh Harjani (IBM) <ritesh.list@gmail.com>
Fri, 19 Sep 2025 06:48:03 +0000 (12:18 +0530)
committerZorro Lang <zlang@kernel.org>
Sat, 18 Oct 2025 15:07:00 +0000 (23:07 +0800)
commit3a530a3f9e8b726a5f8fda619f2c0f1222ce3d02
tree884f3f761d2af5905664765f6cbe2152674e862b
parentca954527ff9d9769c82c99123f3717581044faf7
ext4: Test atomic write and ioend codepaths with bigalloc

This test does a lot of parallel RWF_ATOMIC IO on a preallocated file to
stress the write and end-io unwritten conversion code paths. We brute
force this for different blocksize and clustersizes and after each
iteration we ensure the data was not torn or corrupted using fio crc
verification.

Note that in this test we use overlapping atomic writes of same io size.
Although serializing racing writes is not guaranteed for RWF_ATOMIC,
NVMe and SCSI provide this guarantee as an inseparable feature to
power-fail atomicity. Keeping the iosize as same also ensures that ext4
doesn't tear the write due to racing ioend unwritten conversion.

The value of this test is that we make sure the RWF_ATOMIC is handled
correctly by ext4 as well as test that the block layer doesn't split or
only generate multiple bios for an atomic write.

Signed-off-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: John Garry <john.g.garry@oracle.com>
Signed-off-by: Ojaswin Mujoo <ojaswin@linux.ibm.com>
Signed-off-by: Zorro Lang <zlang@kernel.org>
tests/ext4/061 [new file with mode: 0755]
tests/ext4/061.out [new file with mode: 0644]