On Tue, May 13, 2025 at 07:19:33AM +0200, Christoph Hellwig wrote: > 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@xxxxxx> > --- Looks good, Reviewed-by: "Darrick J. Wong" <djwong@xxxxxxxxxx> --D > 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 50dc75d35259..1c0dd03e4ac7 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 96c15f3c7bb0..4ac29a95812b 100644 > --- a/common/xfs > +++ b/common/xfs > @@ -772,6 +772,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 91c17690cabe..79bf80842234 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 20a80fcb6b91..82a9a79208ab 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.47.2 > >