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 <djwong@kernel.org>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
This commit is contained in:
Darrick J. Wong
2021-04-28 18:31:54 -07:00
committed by Eryu Guan
parent d00cc974c7
commit 1c18b9ec2f
3 changed files with 20 additions and 0 deletions
+12
View File
@@ -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()
{
+4
View File
@@ -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
+4
View File
@@ -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