mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
xfstests: a couple of fixes for external logs
Fix a couple of issues when running xfsqa with external logs: - update the 096 golden output for the external log case - add a new _scratch_xfs_check similar to _scratch_xfs_logprint and _scratch_xfs_repair that take the log device into account and use it in test 134 - use _scratch_xfs_repair in test 202 to fix it for external log devices Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Eric Sandeen <sandeen@sandeen.net>
This commit is contained in:
committed by
Christoph Hellwig
parent
b9f1319261
commit
2370bb6d22
@@ -67,7 +67,7 @@ do
|
||||
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"
|
||||
|
||||
+2
-2
@@ -30,7 +30,7 @@ realtime =REALTIME extsz=N, blocks=N, rtextents=N
|
||||
|
||||
|
||||
# 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
|
||||
@@ -41,7 +41,7 @@ realtime =REALTIME extsz=N, blocks=N, rtextents=N
|
||||
|
||||
|
||||
# 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
|
||||
|
||||
@@ -20,6 +20,7 @@ status=1 # failure is the default!
|
||||
# get standard environment, filters and checks
|
||||
. ./common.rc
|
||||
. ./common.filter
|
||||
. ./common.repair
|
||||
|
||||
# real QA test starts here
|
||||
_supported_fs xfs
|
||||
@@ -31,10 +32,10 @@ echo "== Creating single-AG filesystem =="
|
||||
_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"
|
||||
|
||||
@@ -6,19 +6,17 @@ Only one AG detected - cannot validate filesystem geometry.
|
||||
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...
|
||||
|
||||
@@ -268,6 +268,14 @@ _scratch_xfs_logprint()
|
||||
$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=""
|
||||
|
||||
Reference in New Issue
Block a user