]> git.apps.os.sepia.ceph.com Git - xfstests-dev.git/commitdiff
xfs: skip test that want to mdrestore to block devices on zoned devices
authorChristoph Hellwig <hch@lst.de>
Tue, 13 May 2025 05:19:33 +0000 (07:19 +0200)
committerZorro Lang <zlang@kernel.org>
Sun, 18 May 2025 13:57:16 +0000 (21:57 +0800)
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 <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Zorro Lang <zlang@kernel.org>
common/populate
common/xfs
tests/xfs/284
tests/xfs/598

index 50dc75d35259d7460f2d1eea91b9d0d5debd32e8..1c0dd03e4ac787275b187c6d71e2db0dfb10adad 100644 (file)
@@ -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"
index 061ca586c84f0524f4b896a5c44f606b3eb5a053..ffdb82e6c970baf905841279fbd9009c4089adab 100644 (file)
@@ -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"
index 91c17690cabe8552e80776c7d4a9e5fbea3e6f77..79bf80842234e916dbf8e0519df15bcade669ffa 100755 (executable)
@@ -27,6 +27,7 @@ _require_xfs_copy
 _require_test
 _require_scratch
 _require_no_large_scratch_dev
+_require_scratch_xfs_mdrestore
 
 function filter_mounted()
 {
index 20a80fcb6b91aa903d8cb38c7affeb092b9b8403..82a9a79208ab659d49776b23bf6e60f02a492925 100755 (executable)
@@ -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