[PATCH] xfs: test xfsdump subtree restores
Donald Douwsma <[email protected]>
| Newsgroups | org.kernel.vger.fstests,org.kernel.vger.linux-xfs |
|---|---|
| Message-ID | <[email protected]> |
Regression test for cumulative restores where a directory has been renamed outside of the subtree being restored triggering the assert: xfsrestore: tree.c:1421: noref_elim_recurse: Assertion 'isrealpr' failed Signed-off-by: Donald Douwsma <[email protected]> --- tests/xfs/995 | 51 +++++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/995.out | 2 ++ 2 files changed, 53 insertions(+) create mode 100755 tests/xfs/995 create mode 100644 tests/xfs/995.out diff --git a/tests/xfs/995 b/tests/xfs/995 new file mode 100755 index 00000000..54172572 --- /dev/null +++ b/tests/xfs/995 @@ -0,0 +1,51 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2026 Red Hat. All Rights Reserved. +# +# FS QA Test 995 +# +# Regression test for cumulative restores where a directory has been +# renamed outside of the subtree being restored resulting in +# +# xfsrestore: tree.c:1421: noref_elim_recurse: Assertion 'isrealpr' failed +# +. ./common/preamble +_begin_fstest auto dump + +_fixed_by_git_commit xfsdump XXXXXXX \ + "xfsrestore: only process subtrees that are selected" + +# Override the default cleanup function. +_cleanup() +{ + _cleanup_dump + cd / + rm -r -f $tmp.* +} + +# Import common functions. +. ./common/dump + +# Modify as appropriate. +_require_scratch +_scratch_mkfs_xfs >>$seqres.full +_scratch_mount + +mkdir -p $SCRATCH_MNT/a/b/c/d/e/f/g +mkdir -p $SCRATCH_MNT/restore_me/B/C/D/E/F/G + +_do "$XFSDUMP_PROG -L "lab_l0" -M "test" -l0 -f $tmp.dump.l0 $SCRATCH_MNT" + +mv $SCRATCH_MNT/a/b/c $SCRATCH_MNT/1 + +_do "$XFSDUMP_PROG -L "lab_l2" -M "test" -l2 -f $tmp.dump.l2 $SCRATCH_MNT" + +dir=$(mktemp -d $SCRATCH_MNT/restore_XXX) +_do "$XFSRESTORE_PROG -f $tmp.dump.l0 -r -s restore_me $dir" +_do "$XFSRESTORE_PROG -f $tmp.dump.l2 -r $dir" + +test $? -ne 0 && exit + +echo Silence is golden +# success, all done +_exit 0 diff --git a/tests/xfs/995.out b/tests/xfs/995.out new file mode 100644 index 00000000..776fa6f2 --- /dev/null +++ b/tests/xfs/995.out @@ -0,0 +1,2 @@ +QA output created by 995 +Silence is golden -- 2.47.3