Message ID | 20240102084357.1199843-4-chandanbabu@kernel.org (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
Series | Add support for testing XFS metadump v2 | expand |
On Tue, Jan 02, 2024 at 02:13:50PM +0530, Chandan Babu R wrote: > Metadump v2 supports dumping contents of an external log device. This commit > modifies _scratch_xfs_mdrestore() and _xfs_mdrestore() to be able to restore > metadump files which contain data from external log devices. > > The callers of _scratch_xfs_mdrestore() must set the value of $SCRATCH_LOGDEV > only when all of the following conditions are met: > 1. Metadump is in v2 format. > 2. Metadump has contents dumped from an external log device. > > Signed-off-by: Chandan Babu R <chandanbabu@kernel.org> Looks very similar to my version, Reviewed-by: Darrick J. Wong <djwong@kernel.org> --D > --- > common/xfs | 19 +++++++++++++++++-- > 1 file changed, 17 insertions(+), 2 deletions(-) > > diff --git a/common/xfs b/common/xfs > index 558a6bb5..248c8361 100644 > --- a/common/xfs > +++ b/common/xfs > @@ -682,7 +682,8 @@ _xfs_metadump() { > _xfs_mdrestore() { > local metadump="$1" > local device="$2" > - shift; shift > + local logdev="$3" > + shift; shift; shift > local options="$@" > > # If we're configured for compressed dumps and there isn't already an > @@ -695,6 +696,10 @@ _xfs_mdrestore() { > fi > test -r "$metadump" || return 1 > > + if [ "$logdev" != "none" ]; then > + options="$options -l $logdev" > + fi > + > $XFS_MDRESTORE_PROG $options "${metadump}" "${device}" > } > > @@ -724,8 +729,18 @@ _scratch_xfs_mdrestore() > { > local metadump=$1 > shift > + local logdev=none > + local options="$@" > > - _xfs_mdrestore "$metadump" "$SCRATCH_DEV" "$@" > + # $SCRATCH_LOGDEV should have a non-zero length value only when all of > + # the following conditions are met. > + # 1. Metadump is in v2 format. > + # 2. Metadump has contents dumped from an external log device. > + if [ "$USE_EXTERNAL" = yes -a ! -z "$SCRATCH_LOGDEV" ]; then > + logdev=$SCRATCH_LOGDEV > + fi > + > + _xfs_mdrestore "$metadump" "$SCRATCH_DEV" "$logdev" "$@" > } > > # Do not use xfs_repair (offline fsck) to rebuild the filesystem > -- > 2.43.0 > >
diff --git a/common/xfs b/common/xfs index 558a6bb5..248c8361 100644 --- a/common/xfs +++ b/common/xfs @@ -682,7 +682,8 @@ _xfs_metadump() { _xfs_mdrestore() { local metadump="$1" local device="$2" - shift; shift + local logdev="$3" + shift; shift; shift local options="$@" # If we're configured for compressed dumps and there isn't already an @@ -695,6 +696,10 @@ _xfs_mdrestore() { fi test -r "$metadump" || return 1 + if [ "$logdev" != "none" ]; then + options="$options -l $logdev" + fi + $XFS_MDRESTORE_PROG $options "${metadump}" "${device}" } @@ -724,8 +729,18 @@ _scratch_xfs_mdrestore() { local metadump=$1 shift + local logdev=none + local options="$@" - _xfs_mdrestore "$metadump" "$SCRATCH_DEV" "$@" + # $SCRATCH_LOGDEV should have a non-zero length value only when all of + # the following conditions are met. + # 1. Metadump is in v2 format. + # 2. Metadump has contents dumped from an external log device. + if [ "$USE_EXTERNAL" = yes -a ! -z "$SCRATCH_LOGDEV" ]; then + logdev=$SCRATCH_LOGDEV + fi + + _xfs_mdrestore "$metadump" "$SCRATCH_DEV" "$logdev" "$@" } # Do not use xfs_repair (offline fsck) to rebuild the filesystem
Metadump v2 supports dumping contents of an external log device. This commit modifies _scratch_xfs_mdrestore() and _xfs_mdrestore() to be able to restore metadump files which contain data from external log devices. The callers of _scratch_xfs_mdrestore() must set the value of $SCRATCH_LOGDEV only when all of the following conditions are met: 1. Metadump is in v2 format. 2. Metadump has contents dumped from an external log device. Signed-off-by: Chandan Babu R <chandanbabu@kernel.org> --- common/xfs | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-)