mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
common/rc: optionally test xfs_repair index rebuilding
Run xfs_repair twice more at the end of each test -- once to rebuild the btree indices, and again with -n to check the rebuild work. This is in addition to the regular dry-run spot check. Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Reviewed-by: Eryu Guan <eguan@redhat.com> Signed-off-by: Eryu Guan <eguan@redhat.com>
This commit is contained in:
committed by
Eryu Guan
parent
49b0eda17a
commit
dd6eca7b0e
@@ -80,6 +80,10 @@ Preparing system for tests (IRIX and Linux):
|
|||||||
added to the end of fsstresss and fsx invocations, respectively,
|
added to the end of fsstresss and fsx invocations, respectively,
|
||||||
in case you wish to exclude certain operational modes from these
|
in case you wish to exclude certain operational modes from these
|
||||||
tests.
|
tests.
|
||||||
|
- set TEST_XFS_REPAIR_REBUILD=1 to have _check_xfs_filesystem
|
||||||
|
run xfs_repair -n to check the filesystem; xfs_repair to rebuild
|
||||||
|
metadata indexes; and xfs_repair -n (a third time) to check the
|
||||||
|
results of the rebuilding.
|
||||||
|
|
||||||
- or add a case to the switch in common/config assigning
|
- or add a case to the switch in common/config assigning
|
||||||
these variables based on the hostname of your test
|
these variables based on the hostname of your test
|
||||||
|
|||||||
@@ -2451,6 +2451,35 @@ _check_xfs_filesystem()
|
|||||||
fi
|
fi
|
||||||
rm -f $tmp.fs_check $tmp.logprint $tmp.repair
|
rm -f $tmp.fs_check $tmp.logprint $tmp.repair
|
||||||
|
|
||||||
|
# Optionally test the index rebuilding behavior.
|
||||||
|
if [ -n "$TEST_XFS_REPAIR_REBUILD" ]; then
|
||||||
|
$XFS_REPAIR_PROG $extra_options $extra_log_options $extra_rt_options $device >$tmp.repair 2>&1
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "_check_xfs_filesystem: filesystem on $device is inconsistent (rebuild) (see $seqres.full)"
|
||||||
|
|
||||||
|
echo "_check_xfs_filesystem: filesystem on $device is inconsistent (rebuild)" >>$seqres.full
|
||||||
|
echo "*** xfs_repair output ***" >>$seqres.full
|
||||||
|
cat $tmp.repair | _fix_malloc >>$seqres.full
|
||||||
|
echo "*** end xfs_repair output" >>$seqres.full
|
||||||
|
|
||||||
|
ok=0
|
||||||
|
fi
|
||||||
|
rm -f $tmp.repair
|
||||||
|
|
||||||
|
$XFS_REPAIR_PROG -n $extra_options $extra_log_options $extra_rt_options $device >$tmp.repair 2>&1
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "_check_xfs_filesystem: filesystem on $device is inconsistent (rebuild-reverify) (see $seqres.full)"
|
||||||
|
|
||||||
|
echo "_check_xfs_filesystem: filesystem on $device is inconsistent (rebuild-reverify)" >>$seqres.full
|
||||||
|
echo "*** xfs_repair -n output ***" >>$seqres.full
|
||||||
|
cat $tmp.repair | _fix_malloc >>$seqres.full
|
||||||
|
echo "*** end xfs_repair output" >>$seqres.full
|
||||||
|
|
||||||
|
ok=0
|
||||||
|
fi
|
||||||
|
rm -f $tmp.repair
|
||||||
|
fi
|
||||||
|
|
||||||
if [ $ok -eq 0 ]
|
if [ $ok -eq 0 ]
|
||||||
then
|
then
|
||||||
echo "*** mount output ***" >>$seqres.full
|
echo "*** mount output ***" >>$seqres.full
|
||||||
|
|||||||
Reference in New Issue
Block a user