From 1c18b9ec2fcc94bd05ecdd136aa51c97bf3fa70d Mon Sep 17 00:00:00 2001 From: "Darrick J. Wong" Date: Wed, 28 Apr 2021 18:31:54 -0700 Subject: [PATCH] xfs/49[12]: skip pre-lazysbcount filesystems Prior to lazysbcount, the xfs mount code blindly trusted the value of the fdblocks counter in the primary super, which means that the kernel doesn't detect the fuzzed fdblocks value at all. V4 is deprecated and pre-lazysbcount V4 hasn't been the default for ~14 years, so we'll just skip these two tests on those old filesystems. Signed-off-by: Darrick J. Wong Reviewed-by: Brian Foster Signed-off-by: Eryu Guan --- common/xfs | 12 ++++++++++++ tests/xfs/491 | 4 ++++ tests/xfs/492 | 4 ++++ 3 files changed, 20 insertions(+) diff --git a/common/xfs b/common/xfs index ce49057c..5cd7b35c 100644 --- a/common/xfs +++ b/common/xfs @@ -1144,6 +1144,18 @@ _check_scratch_xfs_features() test "${found}" -eq "$#" } +# Skip a test if any of the given fs features aren't present on the scratch +# filesystem. The scratch fs must have been formatted already. +_require_scratch_xfs_features() +{ + local features="$(_scratch_xfs_db -c 'version' 2>/dev/null)" + + for feature in "$@"; do + echo "${features}" | grep -q -w "${feature}" || + _notrun "Missing scratch feature: ${feature}" + done +} + # Decide if xfs_repair knows how to set (or clear) a filesystem feature. _require_xfs_repair_upgrade() { diff --git a/tests/xfs/491 b/tests/xfs/491 index 6420202b..7d447ccf 100755 --- a/tests/xfs/491 +++ b/tests/xfs/491 @@ -36,6 +36,10 @@ _require_scratch echo "Format and mount" _scratch_mkfs > $seqres.full 2>&1 + +# pre-lazysbcount filesystems blindly trust the primary sb fdblocks +_require_scratch_xfs_features LAZYSBCOUNT + _scratch_mount >> $seqres.full 2>&1 echo "test file" > $SCRATCH_MNT/testfile diff --git a/tests/xfs/492 b/tests/xfs/492 index 522def47..21c6872f 100755 --- a/tests/xfs/492 +++ b/tests/xfs/492 @@ -36,6 +36,10 @@ _require_scratch echo "Format and mount" _scratch_mkfs > $seqres.full 2>&1 + +# pre-lazysbcount filesystems blindly trust the primary sb fdblocks +_require_scratch_xfs_features LAZYSBCOUNT + _scratch_mount >> $seqres.full 2>&1 echo "test file" > $SCRATCH_MNT/testfile -- 2.30.2