* [PATCH v2] fstests: remove dio related target file to respect mount options that only affecst new inodes
@ 2026-05-28 11:16 Qu Wenruo
2026-05-28 23:31 ` Anand Jain
2026-05-29 9:10 ` Zorro Lang
0 siblings, 2 replies; 3+ messages in thread
From: Qu Wenruo @ 2026-05-28 11:16 UTC (permalink / raw)
To: fstests, linux-btrfs; +Cc: Filipe Manana
[BUG]
Test case generic/362 and generic/365 will fail with nodatasum, but
that's only when TEST_DEV is newly formatted.
FSTYP -- btrfs
PLATFORM -- Linux/x86_64 btrfs-vm 7.1.0-rc4-custom+ #381 SMP PREEMPT_DYNAMIC Tue May 26 10:47:14 ACST 2026
MKFS_OPTIONS -- -O bgt -K /dev/mapper/test-scratch1
MOUNT_OPTIONS -- -o nodatasum /dev/mapper/test-scratch1 /mnt/scratch
generic/362 0s ... - output mismatch (see /home/adam/xfstests/results//generic/362.out.bad)
--- tests/generic/362.out 2024-08-24 15:31:37.200000000 +0930
+++ /home/adam/xfstests/results//generic/362.out.bad 2026-05-28 16:18:33.866141979 +0930
@@ -1,2 +1,3 @@
QA output created by 362
+First write failed: Input/output error
Silence is golden
...
(Run 'diff -u /home/adam/xfstests/tests/generic/362.out /home/adam/xfstests/results//generic/362.out.bad' to see the entire diff)
generic/364 11s ... - output mismatch (see /home/adam/xfstests/results//generic/364.out.bad)
--- tests/generic/364.out 2024-09-30 09:09:51.216666681 +0930
+++ /home/adam/xfstests/results//generic/364.out.bad 2026-05-28 16:18:34.318532257 +0930
@@ -1,2 +1,3 @@
QA output created by 364
+Fsync failed: Input/output error
Silence is golden
...
(Run 'diff -u /home/adam/xfstests/tests/generic/364.out /home/adam/xfstests/results//generic/364.out.bad' to see the entire diff)
But if one has formated TEST_DEV, run test with default mount option,
then change the mount option to "nodatasum", the test will not fail
anymore:
FSTYP -- btrfs
PLATFORM -- Linux/x86_64 btrfs-vm 7.1.0-rc4-custom+ #381 SMP PREEMPT_DYNAMIC Tue May 26 10:47:14 ACST 2026
MKFS_OPTIONS -- -O bgt -K /dev/mapper/test-scratch1
MOUNT_OPTIONS -- /dev/mapper/test-scratch1 /mnt/scratch
generic/362 0s ... 1s
generic/364 11s ... 10s
Ran: generic/362 generic/364
Passed all 2 tests
FSTYP -- btrfs
PLATFORM -- Linux/x86_64 btrfs-vm 7.1.0-rc4-custom+ #381 SMP PREEMPT_DYNAMIC Tue May 26 10:47:14 ACST 2026
MKFS_OPTIONS -- -O bgt -K /dev/mapper/test-scratch1
MOUNT_OPTIONS -- -o nodatasum /dev/mapper/test-scratch1 /mnt/scratch
generic/362 1s ... 0s
generic/364 10s ... 11s
Ran: generic/362 generic/364
Passed all 2 tests
[CAUSE]
Btrfs' nodatasum mount option only affects new files, but the test cases
are using TEST_DEV, and never delete the target files
"$TEST_DIR/dio-append-buf-fault" for generic/362 and
"$TEST_DIR/dio-write-fsync-same-fd" for generic/364.
So if the files are created with default mount options, then all later
"nodatasum" mount options will not affect those files, thus hide the test
failure.
[FIX]
For all test cases utilizing "$here/src/dio*", add a _cleanup()
function, to remove target files, so that for mount options that only
affect new inodes, the mount options will be respected, and expose
failures.
Now generic/36[24] will properly fail for "nodatasum" mount option on
btrfs.
Reviewed-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: Qu Wenruo <wqu@suse.com>
---
Changelog:
v2:
- Fix several grammar errors
- Remove temporary files in _cleanup()
---
tests/generic/362 | 7 +++++++
tests/generic/364 | 8 ++++++++
tests/generic/418 | 7 +++++++
tests/generic/708 | 7 +++++++
4 files changed, 29 insertions(+)
diff --git a/tests/generic/362 b/tests/generic/362
index 0cfaa726..e54d44b0 100755
--- a/tests/generic/362
+++ b/tests/generic/362
@@ -10,6 +10,13 @@
. ./common/preamble
_begin_fstest auto quick
+_cleanup()
+{
+ cd /
+ rm -f "$tmp.*"
+ rm -f "$TEST_DIR/dio-append-buf-fault"
+}
+
# NFS forbade open with O_APPEND|O_DIRECT
_exclude_fs nfs
diff --git a/tests/generic/364 b/tests/generic/364
index f7fb002f..8f13061f 100755
--- a/tests/generic/364
+++ b/tests/generic/364
@@ -11,6 +11,14 @@
. ./common/preamble
_begin_fstest auto quick
+_cleanup()
+{
+ cd /
+ rm -f "$tmp.*"
+ rm -f "$TEST_DIR/dio-write-fsync-same-fd"
+}
+
+
_require_test
_require_odirect
_require_test_program dio-write-fsync-same-fd
diff --git a/tests/generic/418 b/tests/generic/418
index 36789198..7ef1ef9f 100755
--- a/tests/generic/418
+++ b/tests/generic/418
@@ -26,6 +26,13 @@ _require_block_device $TEST_DEV
_require_test_program "dio-invalidate-cache"
_require_test_program "feature"
+_cleanup()
+{
+ cd /
+ rm -f "$tmp.*"
+ rm -f "$testfile"
+}
+
diotest=$here/src/dio-invalidate-cache
testfile=$TEST_DIR/$seq-diotest
sectorsize=`$here/src/min_dio_alignment $TEST_DIR $TEST_DEV`
diff --git a/tests/generic/708 b/tests/generic/708
index 827dac13..f504ca57 100755
--- a/tests/generic/708
+++ b/tests/generic/708
@@ -14,6 +14,13 @@
. ./common/preamble
_begin_fstest quick auto mmap
+_cleanup()
+{
+ cd /
+ rm -f "$tmp.*"
+ rm -f "$src" "$dst"
+}
+
_fixed_by_fs_commit btrfs b73a6fd1b1ef \
"btrfs: split partial dio bios before submit"
--
2.51.2
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH v2] fstests: remove dio related target file to respect mount options that only affecst new inodes
2026-05-28 11:16 [PATCH v2] fstests: remove dio related target file to respect mount options that only affecst new inodes Qu Wenruo
@ 2026-05-28 23:31 ` Anand Jain
2026-05-29 9:10 ` Zorro Lang
1 sibling, 0 replies; 3+ messages in thread
From: Anand Jain @ 2026-05-28 23:31 UTC (permalink / raw)
To: Qu Wenruo, fstests, linux-btrfs; +Cc: Filipe Manana
In the patch title s/affecst/affect/g
Reviewed-by: Anand Jain <asj@kernel.org>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v2] fstests: remove dio related target file to respect mount options that only affecst new inodes
2026-05-28 11:16 [PATCH v2] fstests: remove dio related target file to respect mount options that only affecst new inodes Qu Wenruo
2026-05-28 23:31 ` Anand Jain
@ 2026-05-29 9:10 ` Zorro Lang
1 sibling, 0 replies; 3+ messages in thread
From: Zorro Lang @ 2026-05-29 9:10 UTC (permalink / raw)
To: Qu Wenruo; +Cc: fstests, linux-btrfs, Filipe Manana
On Thu, May 28, 2026 at 08:46:59PM +0930, Qu Wenruo wrote:
> [BUG]
> Test case generic/362 and generic/365 will fail with nodatasum, but
> that's only when TEST_DEV is newly formatted.
>
> FSTYP -- btrfs
> PLATFORM -- Linux/x86_64 btrfs-vm 7.1.0-rc4-custom+ #381 SMP PREEMPT_DYNAMIC Tue May 26 10:47:14 ACST 2026
> MKFS_OPTIONS -- -O bgt -K /dev/mapper/test-scratch1
> MOUNT_OPTIONS -- -o nodatasum /dev/mapper/test-scratch1 /mnt/scratch
>
> generic/362 0s ... - output mismatch (see /home/adam/xfstests/results//generic/362.out.bad)
> --- tests/generic/362.out 2024-08-24 15:31:37.200000000 +0930
> +++ /home/adam/xfstests/results//generic/362.out.bad 2026-05-28 16:18:33.866141979 +0930
> @@ -1,2 +1,3 @@
> QA output created by 362
> +First write failed: Input/output error
> Silence is golden
> ...
> (Run 'diff -u /home/adam/xfstests/tests/generic/362.out /home/adam/xfstests/results//generic/362.out.bad' to see the entire diff)
>
> generic/364 11s ... - output mismatch (see /home/adam/xfstests/results//generic/364.out.bad)
> --- tests/generic/364.out 2024-09-30 09:09:51.216666681 +0930
> +++ /home/adam/xfstests/results//generic/364.out.bad 2026-05-28 16:18:34.318532257 +0930
> @@ -1,2 +1,3 @@
> QA output created by 364
> +Fsync failed: Input/output error
> Silence is golden
> ...
> (Run 'diff -u /home/adam/xfstests/tests/generic/364.out /home/adam/xfstests/results//generic/364.out.bad' to see the entire diff)
>
> But if one has formated TEST_DEV, run test with default mount option,
> then change the mount option to "nodatasum", the test will not fail
> anymore:
>
> FSTYP -- btrfs
> PLATFORM -- Linux/x86_64 btrfs-vm 7.1.0-rc4-custom+ #381 SMP PREEMPT_DYNAMIC Tue May 26 10:47:14 ACST 2026
> MKFS_OPTIONS -- -O bgt -K /dev/mapper/test-scratch1
> MOUNT_OPTIONS -- /dev/mapper/test-scratch1 /mnt/scratch
>
> generic/362 0s ... 1s
> generic/364 11s ... 10s
> Ran: generic/362 generic/364
> Passed all 2 tests
>
> FSTYP -- btrfs
> PLATFORM -- Linux/x86_64 btrfs-vm 7.1.0-rc4-custom+ #381 SMP PREEMPT_DYNAMIC Tue May 26 10:47:14 ACST 2026
> MKFS_OPTIONS -- -O bgt -K /dev/mapper/test-scratch1
> MOUNT_OPTIONS -- -o nodatasum /dev/mapper/test-scratch1 /mnt/scratch
>
> generic/362 1s ... 0s
> generic/364 10s ... 11s
> Ran: generic/362 generic/364
> Passed all 2 tests
>
> [CAUSE]
> Btrfs' nodatasum mount option only affects new files, but the test cases
> are using TEST_DEV, and never delete the target files
> "$TEST_DIR/dio-append-buf-fault" for generic/362 and
> "$TEST_DIR/dio-write-fsync-same-fd" for generic/364.
>
> So if the files are created with default mount options, then all later
> "nodatasum" mount options will not affect those files, thus hide the test
> failure.
>
> [FIX]
> For all test cases utilizing "$here/src/dio*", add a _cleanup()
> function, to remove target files, so that for mount options that only
> affect new inodes, the mount options will be respected, and expose
> failures.
>
> Now generic/36[24] will properly fail for "nodatasum" mount option on
> btrfs.
This patch is good to me,
Reviewed-by: Zorro Lang <zlang@kernel.org>
If you still hope to have a specific test case to uncover this known btrfs
bug, feel free to add a new one (to use SCRATCH_DEV and "nodatasum").
Thanks,
Zorro
>
> Reviewed-by: Filipe Manana <fdmanana@suse.com>
> Signed-off-by: Qu Wenruo <wqu@suse.com>
> ---
> Changelog:
> v2:
> - Fix several grammar errors
> - Remove temporary files in _cleanup()
> ---
> tests/generic/362 | 7 +++++++
> tests/generic/364 | 8 ++++++++
> tests/generic/418 | 7 +++++++
> tests/generic/708 | 7 +++++++
> 4 files changed, 29 insertions(+)
>
> diff --git a/tests/generic/362 b/tests/generic/362
> index 0cfaa726..e54d44b0 100755
> --- a/tests/generic/362
> +++ b/tests/generic/362
> @@ -10,6 +10,13 @@
> . ./common/preamble
> _begin_fstest auto quick
>
> +_cleanup()
> +{
> + cd /
> + rm -f "$tmp.*"
> + rm -f "$TEST_DIR/dio-append-buf-fault"
> +}
> +
> # NFS forbade open with O_APPEND|O_DIRECT
> _exclude_fs nfs
>
> diff --git a/tests/generic/364 b/tests/generic/364
> index f7fb002f..8f13061f 100755
> --- a/tests/generic/364
> +++ b/tests/generic/364
> @@ -11,6 +11,14 @@
> . ./common/preamble
> _begin_fstest auto quick
>
> +_cleanup()
> +{
> + cd /
> + rm -f "$tmp.*"
> + rm -f "$TEST_DIR/dio-write-fsync-same-fd"
> +}
> +
> +
> _require_test
> _require_odirect
> _require_test_program dio-write-fsync-same-fd
> diff --git a/tests/generic/418 b/tests/generic/418
> index 36789198..7ef1ef9f 100755
> --- a/tests/generic/418
> +++ b/tests/generic/418
> @@ -26,6 +26,13 @@ _require_block_device $TEST_DEV
> _require_test_program "dio-invalidate-cache"
> _require_test_program "feature"
>
> +_cleanup()
> +{
> + cd /
> + rm -f "$tmp.*"
> + rm -f "$testfile"
> +}
> +
> diotest=$here/src/dio-invalidate-cache
> testfile=$TEST_DIR/$seq-diotest
> sectorsize=`$here/src/min_dio_alignment $TEST_DIR $TEST_DEV`
> diff --git a/tests/generic/708 b/tests/generic/708
> index 827dac13..f504ca57 100755
> --- a/tests/generic/708
> +++ b/tests/generic/708
> @@ -14,6 +14,13 @@
> . ./common/preamble
> _begin_fstest quick auto mmap
>
> +_cleanup()
> +{
> + cd /
> + rm -f "$tmp.*"
> + rm -f "$src" "$dst"
> +}
> +
> _fixed_by_fs_commit btrfs b73a6fd1b1ef \
> "btrfs: split partial dio bios before submit"
>
> --
> 2.51.2
>
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-05-29 9:10 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-28 11:16 [PATCH v2] fstests: remove dio related target file to respect mount options that only affecst new inodes Qu Wenruo
2026-05-28 23:31 ` Anand Jain
2026-05-29 9:10 ` Zorro Lang
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox