FS/XFS testing framework
 help / color / mirror / Atom feed
From: Zorro Lang <zlang@kernel.org>
To: Qu Wenruo <wqu@suse.com>
Cc: fstests@vger.kernel.org, linux-btrfs@vger.kernel.org,
	 Filipe Manana <fdmanana@suse.com>
Subject: Re: [PATCH v2] fstests: remove dio related target file to respect mount options that only affecst new inodes
Date: Fri, 29 May 2026 17:10:24 +0800	[thread overview]
Message-ID: <ahlXBkOh3TF-3mRG@zlang-mailbox> (raw)
In-Reply-To: <20260528111659.87113-1-wqu@suse.com>

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
> 
> 

      parent reply	other threads:[~2026-05-29  9:10 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ahlXBkOh3TF-3mRG@zlang-mailbox \
    --to=zlang@kernel.org \
    --cc=fdmanana@suse.com \
    --cc=fstests@vger.kernel.org \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=wqu@suse.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox