diff mbox series

[2/4] btrfs/173: make the test work when mounting with nodatacow

Message ID 0e243759cb9551eaac8b6f10f4dfbcbd5e880d56.1706810184.git.fdmanana@suse.com (mailing list archive)
State New, archived
Headers show
Series btrfs: make test pass or skip them when using nodatacow | expand

Commit Message

Filipe Manana Feb. 1, 2024, 6:03 p.m. UTC
From: Filipe Manana <fdmanana@suse.com>

Currently btrfs/173 fails when passing "-o nodatacow" to MOUNT_OPTIONS
because it assumes that when creating a file it does not have the
nodatacow flag set, which is obviously not true if the fs is mounted with
"-o nodatacow". To allow the test to run successfully with nodatacow,
just make sure it clears the nodatacow flag from the file if the fs was
mounted with "-o nodatacow".

Signed-off-by: Filipe Manana <fdmanana@suse.com>
---
 tests/btrfs/173 | 5 +++++
 1 file changed, 5 insertions(+)

Comments

David Disseldorp Feb. 5, 2024, 12:26 p.m. UTC | #1
On Thu,  1 Feb 2024 18:03:48 +0000, fdmanana@kernel.org wrote:

> From: Filipe Manana <fdmanana@suse.com>
> 
> Currently btrfs/173 fails when passing "-o nodatacow" to MOUNT_OPTIONS
> because it assumes that when creating a file it does not have the
> nodatacow flag set, which is obviously not true if the fs is mounted with
> "-o nodatacow". To allow the test to run successfully with nodatacow,
> just make sure it clears the nodatacow flag from the file if the fs was
> mounted with "-o nodatacow".
> 
> Signed-off-by: Filipe Manana <fdmanana@suse.com>
> ---
>  tests/btrfs/173 | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/tests/btrfs/173 b/tests/btrfs/173
> index 6e78a826..42af2d26 100755
> --- a/tests/btrfs/173
> +++ b/tests/btrfs/173
> @@ -23,6 +23,11 @@ echo "COW file"
>  # unset it after the swap file has been created.
>  rm -f "$SCRATCH_MNT/swap"
>  touch "$SCRATCH_MNT/swap"
> +# Make sure we have a COW file if we were mounted with "-o nodatacow".
> +if _normalize_mount_options "$MOUNT_OPTIONS" | grep -q "nodatacow"; then
> +	_require_chattr C
> +	$CHATTR_PROG -C "$SCRATCH_MNT/swap"
> +fi

Nit: _format_swapfile already calls $CHATTR_PROG +C, so might as well
put the _require_chattr call alongside _require_scratch_swapfile

>  chmod 0600 "$SCRATCH_MNT/swap"
>  _pwrite_byte 0x61 0 $(($(_get_page_size) * 10)) "$SCRATCH_MNT/swap" >> $seqres.full
>  $MKSWAP_PROG "$SCRATCH_MNT/swap" >> $seqres.full
diff mbox series

Patch

diff --git a/tests/btrfs/173 b/tests/btrfs/173
index 6e78a826..42af2d26 100755
--- a/tests/btrfs/173
+++ b/tests/btrfs/173
@@ -23,6 +23,11 @@  echo "COW file"
 # unset it after the swap file has been created.
 rm -f "$SCRATCH_MNT/swap"
 touch "$SCRATCH_MNT/swap"
+# Make sure we have a COW file if we were mounted with "-o nodatacow".
+if _normalize_mount_options "$MOUNT_OPTIONS" | grep -q "nodatacow"; then
+	_require_chattr C
+	$CHATTR_PROG -C "$SCRATCH_MNT/swap"
+fi
 chmod 0600 "$SCRATCH_MNT/swap"
 _pwrite_byte 0x61 0 $(($(_get_page_size) * 10)) "$SCRATCH_MNT/swap" >> $seqres.full
 $MKSWAP_PROG "$SCRATCH_MNT/swap" >> $seqres.full