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

fdmanana
2024-02-01T18:04:07Z

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