From a5339f1aeb001e425e2de7c00876c8b8b124f7fb Mon Sep 17 00:00:00 2001 From: "Darrick J. Wong" Date: Tue, 6 Feb 2024 18:18:45 -0800 Subject: [PATCH] common/xfs: simplify maximum metadump format detection xfs_metadump (aka the wrapper around xfs_db -c metadump) advertises the -v switch to turn on v2 format in its help screen. There's no need to fire up xfs_db on the scratch device which will load the AGs and take much longer. While we're at it, reduce the amount of boilerplate in the test files by changing the function to emit the max version supported. Signed-off-by: "Darrick J. Wong" Reviewed-by: Christoph Hellwig Signed-off-by: Zorro Lang --- common/xfs | 10 +++++++--- tests/xfs/129 | 3 +-- tests/xfs/234 | 3 +-- tests/xfs/253 | 3 +-- tests/xfs/291 | 3 +-- tests/xfs/432 | 3 +-- tests/xfs/503 | 3 +-- tests/xfs/605 | 3 +-- 8 files changed, 14 insertions(+), 17 deletions(-) diff --git a/common/xfs b/common/xfs index 11cfd795..248ccefd 100644 --- a/common/xfs +++ b/common/xfs @@ -713,10 +713,14 @@ _xfs_mdrestore() { $XFS_MDRESTORE_PROG $options "${metadump}" "${device}" } -_scratch_metadump_v2_supported() +# What is the maximum metadump file format supported by xfs_metadump? +_xfs_metadump_max_version() { - $XFS_DB_PROG -c "help metadump" $SCRATCH_DEV | \ - grep -q "Metadump version to be used" + if $XFS_METADUMP_PROG --help 2>&1 | grep -q -- '-v version'; then + echo 2 + else + echo 1 + fi } # Snapshot the metadata on the scratch device diff --git a/tests/xfs/129 b/tests/xfs/129 index 8a817b41..cdac2349 100755 --- a/tests/xfs/129 +++ b/tests/xfs/129 @@ -106,8 +106,7 @@ verify_metadump_v2() _scratch_mkfs >/dev/null 2>&1 -max_md_version=1 -_scratch_metadump_v2_supported && max_md_version=2 +max_md_version=$(_xfs_metadump_max_version) _scratch_mount diff --git a/tests/xfs/234 b/tests/xfs/234 index c9bdb674..f4f8af6d 100755 --- a/tests/xfs/234 +++ b/tests/xfs/234 @@ -106,8 +106,7 @@ verify_metadump_v2() _scratch_mkfs >/dev/null 2>&1 -max_md_version=1 -_scratch_metadump_v2_supported && max_md_version=2 +max_md_version=$(_xfs_metadump_max_version) _scratch_mount diff --git a/tests/xfs/253 b/tests/xfs/253 index 8e18ddb8..3b567999 100755 --- a/tests/xfs/253 +++ b/tests/xfs/253 @@ -233,8 +233,7 @@ cd $here _scratch_unmount -max_md_version=1 -_scratch_metadump_v2_supported && max_md_version=2 +max_md_version=$(_xfs_metadump_max_version) verify_metadump_v1 $max_md_version diff --git a/tests/xfs/291 b/tests/xfs/291 index 33193eb7..14331408 100755 --- a/tests/xfs/291 +++ b/tests/xfs/291 @@ -92,8 +92,7 @@ _scratch_xfs_check >> $seqres.full 2>&1 || _fail "xfs_check failed" # Yes they can! Now... # Can xfs_metadump cope with this monster? -max_md_version=1 -_scratch_metadump_v2_supported && max_md_version=2 +max_md_version=$(_xfs_metadump_max_version) for md_version in $(seq 1 $max_md_version); do version="" diff --git a/tests/xfs/432 b/tests/xfs/432 index a215d3ce..7e402aa8 100755 --- a/tests/xfs/432 +++ b/tests/xfs/432 @@ -87,8 +87,7 @@ echo "qualifying extent: $extlen blocks" >> $seqres.full test -n "$extlen" || _notrun "could not create dir extent > 1000 blocks" echo "Try to metadump, restore and check restored metadump image" -max_md_version=1 -_scratch_metadump_v2_supported && max_md_version=2 +max_md_version=$(_xfs_metadump_max_version) for md_version in $(seq 1 $max_md_version); do version="" diff --git a/tests/xfs/503 b/tests/xfs/503 index a1479eb6..8643c3d4 100755 --- a/tests/xfs/503 +++ b/tests/xfs/503 @@ -54,8 +54,7 @@ check_restored_metadump_image() _destroy_loop_device $loop_dev } -max_md_version=1 -_scratch_metadump_v2_supported && max_md_version=2 +max_md_version=$(_xfs_metadump_max_version) echo "metadump and mdrestore" for md_version in $(seq 1 $max_md_version); do diff --git a/tests/xfs/605 b/tests/xfs/605 index 5cbf5d25..f2cd7aba 100755 --- a/tests/xfs/605 +++ b/tests/xfs/605 @@ -44,8 +44,7 @@ testfile=${SCRATCH_MNT}/testfile echo "Format filesystem on scratch device" _scratch_mkfs >> $seqres.full 2>&1 -max_md_version=1 -_scratch_metadump_v2_supported && max_md_version=2 +max_md_version=$(_xfs_metadump_max_version) external_log=0 if [[ $USE_EXTERNAL = yes && -n "$SCRATCH_LOGDEV" ]]; then -- 2.39.5