On Sat, Dec 17, 2022 at 12:18:34AM -0800, Darrick J. Wong wrote: > From: Darrick J. Wong <djwong@xxxxxxxxxx> > > 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@xxxxxxxxxx> > --- > v1.1: remove unnecessary parameter This version looks good to me, Reviewed-by: Zorro Lang <zlang@xxxxxxxxxx> > --- > common/ext4 | 10 ++++++++++ > common/populate | 11 ----------- > common/xfs | 10 ++++++++++ > 3 files changed, 20 insertions(+), 11 deletions(-) > > diff --git a/common/ext4 b/common/ext4 > index dc2e4e59cc..8fd6dbc682 100644 > --- a/common/ext4 > +++ b/common/ext4 > @@ -132,6 +132,16 @@ _ext4_mdrestore() > 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}" > } > > diff --git a/common/populate b/common/populate > index f382c40aca..0a8a6390d4 100644 > --- a/common/populate > +++ b/common/populate > @@ -848,17 +848,6 @@ _scratch_populate_cache_tag() { > _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}" > diff --git a/common/xfs b/common/xfs > index 216dab3bcd..60848a5b8a 100644 > --- a/common/xfs > +++ b/common/xfs > @@ -644,6 +644,16 @@ _xfs_mdrestore() { > 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}" > } > >