From 0e88b42adfbc15dcfb84312f1d7acb2b245be161 Mon Sep 17 00:00:00 2001 From: Christoph Hellwig Date: Tue, 13 May 2025 07:19:33 +0200 Subject: [PATCH] xfs: skip test that want to mdrestore to block devices on zoned devices mdrestore doesn't work on zoned device, so skip tests using to pre-populate a file system image. This was previously papered over by requiring fallocate, which got removed in commit eff1baf42a79 ("common/populate: drop fallocate mode 0 requirement"). Signed-off-by: Christoph Hellwig Reviewed-by: Darrick J. Wong Signed-off-by: Zorro Lang --- common/populate | 2 +- common/xfs | 14 ++++++++++++++ tests/xfs/284 | 1 + tests/xfs/598 | 1 + 4 files changed, 17 insertions(+), 1 deletion(-) diff --git a/common/populate b/common/populate index 50dc75d3..1c0dd03e 100644 --- a/common/populate +++ b/common/populate @@ -19,7 +19,7 @@ _require_populate_commands() { "xfs") _require_command "$XFS_DB_PROG" "xfs_db" _require_command "$WIPEFS_PROG" "wipefs" - _require_command "$XFS_MDRESTORE_PROG" "xfs_mdrestore" + _require_scratch_xfs_mdrestore ;; ext*) _require_command "$DUMPE2FS_PROG" "dumpe2fs" diff --git a/common/xfs b/common/xfs index 061ca586..ffdb82e6 100644 --- a/common/xfs +++ b/common/xfs @@ -777,6 +777,20 @@ _scratch_xfs_mdrestore() _xfs_mdrestore "$metadump" "$SCRATCH_DEV" "$logdev" "$rtdev" "$@" } +# Check if mdrestore to the scratch device is supported +_require_scratch_xfs_mdrestore() { + _require_command "$XFS_MDRESTORE_PROG" "xfs_mdrestore" + + # mdrestore can't restore to zoned devices + _require_non_zoned_device $SCRATCH_DEV + if [ "$USE_EXTERNAL" = yes -a ! -z "$SCRATCH_LOGDEV" ]; then + _require_non_zoned_device $SCRATCH_LOGDEV + fi + if [ "$USE_EXTERNAL" = yes -a ! -z "$SCRATCH_RTDEV" ]; then + _require_non_zoned_device $SCRATCH_RTDEV + fi +} + # Do not use xfs_repair (offline fsck) to rebuild the filesystem _xfs_skip_offline_rebuild() { touch "$RESULT_DIR/.skip_rebuild" diff --git a/tests/xfs/284 b/tests/xfs/284 index 91c17690..79bf8084 100755 --- a/tests/xfs/284 +++ b/tests/xfs/284 @@ -27,6 +27,7 @@ _require_xfs_copy _require_test _require_scratch _require_no_large_scratch_dev +_require_scratch_xfs_mdrestore function filter_mounted() { diff --git a/tests/xfs/598 b/tests/xfs/598 index 20a80fcb..82a9a792 100755 --- a/tests/xfs/598 +++ b/tests/xfs/598 @@ -28,6 +28,7 @@ _require_test _require_scratch _require_xfs_mkfs_ciname _require_xfs_ciname +_require_scratch_xfs_mdrestore _scratch_mkfs -n version=ci > $seqres.full _scratch_mount -- 2.39.5