Move the metadump decompression code to the per-filesystem mdrestore
commands so that everyone can take advantage of them. This enables the
XFS and ext4 _mdrestore helpers to handle metadata dumps compressed with
their respective _metadump helpers.
In turn, this means that the xfs fuzz tests can now handle the
compressed metadumps created by the _scratch_populate_cached helper.
This is key to unbreaking fuzz testing for xfs.
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Zorro Lang <zlang@redhat.com>
Signed-off-by: Zorro Lang <zlang@kernel.org>
shift; shift
local options="$@"
+ # If we're configured for compressed dumps and there isn't already an
+ # uncompressed dump, see if we can use DUMP_COMPRESSOR to decompress
+ # something.
+ if [ ! -e "$metadump" ] && [ -n "$DUMP_COMPRESSOR" ]; then
+ for compr in "$metadump".*; do
+ [ -e "$compr" ] && $DUMP_COMPRESSOR -d -f -k "$compr" && break
+ done
+ fi
+ test -r "$metadump" || return 1
+
$E2IMAGE_PROG $options -r "${metadump}" "${SCRATCH_DEV}"
}
_scratch_populate_restore_cached() {
local metadump="$1"
- # If we're configured for compressed dumps and there isn't already an
- # uncompressed dump, see if we can use DUMP_COMPRESSOR to decompress
- # something.
- if [ -n "$DUMP_COMPRESSOR" ]; then
- for compr in "$metadump".*; do
- [ -e "$compr" ] && $DUMP_COMPRESSOR -d -f -k "$compr" && break
- done
- fi
-
- test -r "$metadump" || return 1
-
case "${FSTYP}" in
"xfs")
_xfs_mdrestore "${metadump}" "${SCRATCH_DEV}"
shift; shift
local options="$@"
+ # If we're configured for compressed dumps and there isn't already an
+ # uncompressed dump, see if we can use DUMP_COMPRESSOR to decompress
+ # something.
+ if [ ! -e "$metadump" ] && [ -n "$DUMP_COMPRESSOR" ]; then
+ for compr in "$metadump".*; do
+ [ -e "$compr" ] && $DUMP_COMPRESSOR -d -f -k "$compr" && break
+ done
+ fi
+ test -r "$metadump" || return 1
+
$XFS_MDRESTORE_PROG $options "${metadump}" "${device}"
}