echo "" >>$seq.full
echo "*** XFS_CHECK ***" >>$seq.full
echo "" >>$seq.full
- xfs_check $checkopts $SCRATCH_DEV >>$seq.full 2>&1 \
+ _scratch_xfs_check $checkopts >>$seq.full 2>&1 \
|| _fail "xfs_check $checkopts failed"
_scratch_mount -o remount,rw \
|| _fail "remount rw failed"
# test out data stripe
---- mkfs=-d su=266240,sw=1 ---
+--- mkfs=-l version=1 -d su=266240,sw=1 ---
meta-data=DEV isize=256 agcount=N, agsize=N blks
data = bsize=4096 blocks=N, imaxpct=25
= sunit=65 swidth=65 blks, unwritten=1
# test out data stripe the same but using sunit & swidth
---- mkfs=-d sunit=520,swidth=520 ---
+--- mkfs=-l version=1 -d sunit=520,swidth=520 ---
meta-data=DEV isize=256 agcount=N, agsize=N blks
data = bsize=4096 blocks=N, imaxpct=25
= sunit=65 swidth=65 blks, unwritten=1
# get standard environment, filters and checks
. ./common.rc
. ./common.filter
+. ./common.repair
# real QA test starts here
_supported_fs xfs
_scratch_mkfs_xfs -d agcount=1 >/dev/null 2>&1
echo "== Trying to repair it (should fail) =="
-xfs_repair $SCRATCH_DEV
+_scratch_xfs_repair
echo "== Trying to repair it with -o force_geometry =="
-xfs_repair -o force_geometry $SCRATCH_DEV
+_scratch_xfs_repair -o force_geometry 2>&1 | _filter_repair
# success, all done
echo "*** done"
Use the -o force_geometry option to proceed.
== Trying to repair it with -o force_geometry ==
Phase 1 - find and verify superblock...
-Phase 2 - using internal log
+Phase 2 - using <TYPEOF> log
- zero log...
- scan filesystem freespace and inode maps...
- found root inode chunk
Phase 3 - for each AG...
- scan and clear agi unlinked lists...
- process known inodes and perform inode discovery...
- - agno = 0
- process newly discovered inodes...
Phase 4 - check for duplicate blocks...
- setting up duplicate extent list...
- check for inodes claiming duplicate blocks...
- - agno = 0
Phase 5 - rebuild AG headers and trees...
- reset superblock...
Phase 6 - check inode connectivity...
$XFS_LOGPRINT_PROG $SCRATCH_OPTIONS $* $SCRATCH_DEV
}
+_scratch_xfs_check()
+{
+ SCRATCH_OPTIONS=""
+ [ "$USE_EXTERNAL" = yes -a ! -z "$SCRATCH_LOGDEV" ] && \
+ SCRATCH_OPTIONS="-l $SCRATCH_LOGDEV"
+ $XFS_CHECK_PROG $SCRATCH_OPTIONS $* $SCRATCH_DEV
+}
+
_scratch_xfs_repair()
{
SCRATCH_OPTIONS=""