Numerous changes to QA scripts allowing tests to run with external log/rt devices; also allow multiple mkfs/mount options at once now.

This commit is contained in:
fsgqa
2003-05-22 04:16:45 +00:00
parent 0cac704bdf
commit 8050efd492
40 changed files with 311 additions and 282 deletions
+3 -3
View File
@@ -57,15 +57,15 @@ trap "_cleanup" 0 1 2 3 15
_populate_scratch()
{
echo "=== mkfs output ===" >>$seq.full
mkfs_xfs $SCRATCH_DEV | tee -a $seq.full | _filter_mkfs 2>$tmp.mkfs
_scratch_mkfs_xfs | tee -a $seq.full | _filter_mkfs 2>$tmp.mkfs
source $tmp.mkfs
mount -t xfs $SCRATCH_DEV $SCRATCH_MNT
_scratch_mount
dd if=/dev/zero of=$SCRATCH_MNT/foo count=200 bs=4096 >/dev/null 2>&1 &
dd if=/dev/zero of=$SCRATCH_MNT/goo count=400 bs=4096 >/dev/null 2>&1 &
dd if=/dev/zero of=$SCRATCH_MNT/moo count=800 bs=4096 >/dev/null 2>&1 &
wait
umount $SCRATCH_MNT # flush everything
mount -t xfs $SCRATCH_DEV $SCRATCH_MNT # and then remount
_scratch_mount # and then remount
}
+2 -2
View File
@@ -66,7 +66,7 @@ _block_filter()
_init()
{
echo "*** mkfs"
if ! mkfs_xfs $SCRATCH_DEV >$tmp.out 2>&1
if ! _scratch_mkfs_xfs >$tmp.out 2>&1
then
cat $tmp.out
echo "failed to mkfs $SCRATCH_DEV"
@@ -74,7 +74,7 @@ _init()
fi
echo "*** mount"
if ! mount $SCRATCH_DEV $SCRATCH_MNT -t xfs
if ! _scratch_mount
then
echo "failed to mount $SCRATCH_DEV"
exit 1
+2 -2
View File
@@ -98,7 +98,7 @@ _do_test()
status=1
fi
_check_fs $TEST_DEV
_check_test_fs
}
@@ -109,7 +109,7 @@ echo "brevity is wit..."
count=1000
_check_fs $TEST_DEV
_check_test_fs
# the default
+2 -2
View File
@@ -76,8 +76,8 @@ _filter_dd()
# real QA test starts here
_require_scratch
mkfs_xfs -d size=50m $SCRATCH_DEV >/dev/null
mount -t xfs $SCRATCH_DEV $SCRATCH_MNT
_scratch_mkfs_xfs -d size=50m >/dev/null
_scratch_mount
out=$SCRATCH_MNT/fillup.$$
rm -f $seq.full
+5 -5
View File
@@ -80,7 +80,7 @@ _init()
echo "*** mkfs"
force_opts="-dsize=50m -lsize=2097152"
echo mkfs_xfs $force_opts $SCRATCH_DEV >>$seq.full
mkfs_xfs $force_opts $SCRATCH_DEV | _filter_mkfs >/dev/null 2>$tmp.mkfs
_scratch_mkfs_xfs $force_opts | _filter_mkfs >/dev/null 2>$tmp.mkfs
source $tmp.mkfs
}
@@ -92,7 +92,7 @@ _log_traffic()
out=$SCRATCH_MNT/$$.tmp
echo " *** mount"
if ! mount -t xfs $SCRATCH_DEV $SCRATCH_MNT
if ! _scratch_mount
then
echo "failed to mount $SCRATCH_DEV"
exit 1
@@ -122,14 +122,14 @@ _log_traffic()
_log_size()
{
xfs_logprint -tb $SCRATCH_DEV | $AWK_PROG '
/log device/ { print $7}
_scratch_xfs_logprint -tb | $AWK_PROG '
/log file: / || /log device: / { print $7}
'
}
_log_head()
{
xfs_logprint -tb $SCRATCH_DEV | $AWK_PROG '
_scratch_xfs_logprint -tb | $AWK_PROG '
/head:/ { print $5 }
'
}
+9 -14
View File
@@ -53,15 +53,6 @@ _cleanup()
}
trap "_cleanup; rm -f $tmp.*; exit \$status" 0 1 2 3 15
_clean_log()
{
echo "" >>$seq.full
echo "*** xfs_logprint ***" >>$seq.full
echo "" >>$seq.full
xfs_logprint -tb $1 | tee -a $seq.full \
| head | grep -q "<CLEAN>" || _fail "DIRTY LOG"
}
# get standard environment, filters and checks
. ./common.rc
. ./common.filter
@@ -76,9 +67,9 @@ rm -f $seq.full
umount $SCRATCH_DEV >/dev/null 2>&1
echo "*** MKFS ***" >>$seq.full
echo "" >>$seq.full
mkfs_xfs $SCRATCH_DEV >>$seq.full 2>&1 \
_scratch_mkfs_xfs >>$seq.full 2>&1 \
|| _fail "mkfs failed"
mount -t xfs $SCRATCH_DEV $SCRATCH_MNT >>$seq.full 2>&1 \
_scratch_mount >>$seq.full 2>&1 \
|| _fail "mount failed"
echo "*** test"
@@ -88,17 +79,21 @@ do
echo " *** test $l"
src/fsstress -d $SCRATCH_MNT -n 1000 $FSSTRESS_AVOID >>$seq.full
mount -o remount,ro $SCRATCH_DEV \
_scratch_mount -o remount,ro \
|| _fail "remount ro failed"
_clean_log $SCRATCH_DEV
echo "" >>$seq.full
echo "*** xfs_logprint ***" >>$seq.full
echo "" >>$seq.full
_scratch_xfs_logprint -tb | tee -a $seq.full \
| head | grep -q "<CLEAN>" || _fail "DIRTY LOG"
echo "" >>$seq.full
echo "*** XFS_CHECK ***" >>$seq.full
echo "" >>$seq.full
xfs_check $SCRATCH_DEV >>$seq.full 2>&1 \
|| _fail "xfs_check failed"
mount -o remount,rw $SCRATCH_DEV \
_scratch_mount -o remount,rw \
|| _fail "remount rw failed"
done
+9 -13
View File
@@ -65,18 +65,12 @@ _full()
echo "" >>$seq.full
}
_clean_log()
{
_full "clean_log : xfs_logprint"
xfs_logprint -t $1 | tee -a $seq.full \
| head | grep -q "<CLEAN>" || _fail "DIRTY LOG"
}
_filter_logprint()
{
sed '
s/data device: 0x[0-9a-f][0-9a-f]*/data device: <DEVICE>/;
s/log device: 0x[0-9a-f][0-9a-f]*/log device: <DEVICE>/;
s/log file: \".*\"/log device: <DEVICE>/;
s/daddr: [0-9][0-9]*/daddr: <DADDR>/;
s/length: [0-9][0-9]*/length: <LENGTH>/;
s/length: [0-9][0-9]*/length: <LENGTH>/;
@@ -103,13 +97,15 @@ _filter_logprint()
_check_log()
{
_clean_log $SCRATCH_DEV
_full "clean_log : xfs_logprint"
_scratch_xfs_logprint -t | tee -a $seq.full \
| head | grep -q "<CLEAN>" || _fail "DIRTY LOG"
echo "### xfs_logprint output ###"
xfs_logprint $SCRATCH_DEV 2>&1 | _filter_logprint
_scratch_xfs_logprint 2>&1 | _filter_logprint
echo "### xfs_logprint -t -i -s 0 output ###"
xfs_logprint -t -i -s 0 $SCRATCH_DEV 2>&1 | _filter_logprint
_scratch_xfs_logprint -t -i -s 0 2>&1 | _filter_logprint
echo "### xfs_logprint -t -b -s 0 output ###"
xfs_logprint -t -b -s 0 $SCRATCH_DEV 2>&1 | _filter_logprint
_scratch_xfs_logprint -t -b -s 0 2>&1 | _filter_logprint
}
# real QA test starts here
@@ -122,7 +118,7 @@ touch $seq.out
umount $SCRATCH_DEV >/dev/null 2>&1
_full "mkfs"
mkfs_xfs -lsize=2000b $SCRATCH_DEV | _filter_mkfs 2>$tmp.mkfs
_scratch_mkfs_xfs -lsize=2000b | _filter_mkfs 2>$tmp.mkfs
source $tmp.mkfs
[ $dbsize -eq 4096 ] \
|| _notrun "Logprint test, tailored to 4K blocks ($dbsize in use)"
@@ -134,7 +130,7 @@ source $tmp.mkfs
rm -f $seq.out $seq.full
_full " mount"
mount -t xfs $SCRATCH_DEV $SCRATCH_MNT >>$seq.full 2>&1 \
_scratch_mount >>$seq.full 2>&1 \
|| _fail "mount failed"
_setup_seq_out
+4 -4
View File
@@ -130,15 +130,15 @@ _verify_fs()
umount $SCRATCH_DEV >/dev/null 2>&1
_full "mkfs"
mkfs_xfs $VERSION -p $protofile $SCRATCH_DEV >>$seqfull 2>&1 \
_scratch_mkfs_xfs $VERSION -p $protofile >>$seqfull 2>&1 \
|| _fail "mount failed"
echo "*** check FS"
_check_fs $SCRATCH_DEV
_check_scratch_fs
echo "*** mount FS"
_full " mount"
mount -t xfs $SCRATCH_DEV $SCRATCH_MNT >>$seqfull 2>&1 \
_scratch_mount >>$seqfull 2>&1 \
|| _fail "mount failed"
echo "*** verify FS"
@@ -153,7 +153,7 @@ _verify_fs()
|| _fail "umount failed"
echo "*** check FS"
_check_fs $SCRATCH_DEV
_check_scratch_fs
}
_verify_fs 1
+2 -2
View File
@@ -94,11 +94,11 @@ rm -f $seq.full
umount $SCRATCH_DEV >/dev/null 2>&1
echo "*** mkfs"
mkfs_xfs $SCRATCH_DEV >/dev/null \
_scratch_mkfs_xfs >/dev/null \
|| _fail "mkfs failed"
echo "*** mount FS"
mount -t xfs $SCRATCH_DEV $SCRATCH_MNT >/dev/null \
_scratch_mount >/dev/null \
|| _fail "mount failed"
testfile=$SCRATCH_MNT/testfile
+2 -11
View File
@@ -51,15 +51,6 @@ trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
. ./common.rc
. ./common.filter
mkfs_args=""
logp_args=""
if [ ! -z "$SCRATCH_LOGDEV" ] # test external log if possible
then
_require_logdev
mkfs_args="-l logdev=$SCRATCH_LOGDEV,size=1200b"
logp_args="-l $SCRATCH_LOGDEV"
fi
_filter_logprint()
{
perl -ne '
@@ -78,10 +69,10 @@ _filter_logprint()
_require_scratch
echo
mkfs_xfs $mkfs_args $SCRATCH_DEV | _filter_mkfs 2>/dev/null
_scratch_mkfs_xfs | _filter_mkfs 2>/dev/null
echo
xfs_logprint $logp_args $SCRATCH_DEV | _filter_logprint
_scratch_xfs_logprint | _filter_logprint
status=0
exit
+3 -3
View File
@@ -80,12 +80,12 @@ DSIZE="-dsize=100m"
# superblock (hanging around from earlier tests)...
#
mkfs_xfs $DSIZE $SCRATCH_DEV >/dev/null 2>&1
_scratch_mkfs_xfs $DSIZE >/dev/null 2>&1
if [ $? -ne 0 ] # probably don't have a big enough scratch
then
_notrun "SCRATCH_DEV too small, results would be non-deterministic"
else
mount -t xfs $SCRATCH_DEV $SCRATCH_MNT
_scratch_mount
src/feature -U $SCRATCH_DEV && \
_notrun "Quota are enabled, test needs controlled sb recovery"
src/feature -G $SCRATCH_DEV && \
@@ -102,7 +102,7 @@ src/devzero -v -1 -n "$clear" $SCRATCH_DEV >/dev/null
# now kick off the real repair test...
#
mkfs_xfs $DSIZE $SCRATCH_DEV | _filter_mkfs 2>$tmp.mkfs
_scratch_mkfs_xfs $DSIZE | _filter_mkfs 2>$tmp.mkfs
source $tmp.mkfs
_check_ag 0
_check_ag -1
+8 -8
View File
@@ -20,7 +20,7 @@ sb realtime bitmap inode INO inconsistent with calculated value INO
resetting superblock realtime bitmap ino pointer to INO
sb realtime summary inode INO inconsistent with calculated value INO
resetting superblock realtime summary ino pointer to INO
Phase 2 - using internal log
Phase 2 - using <TYPEOF> log
- zero log...
- scan filesystem freespace and inode maps...
- found root inode chunk
@@ -49,7 +49,7 @@ done
Corrupting agf 0 - setting bits to 0
Wrote X.XXKb (value 0x0)
Phase 1 - find and verify superblock...
Phase 2 - using internal log
Phase 2 - using <TYPEOF> log
- zero log...
- scan filesystem freespace and inode maps...
bad magic # 0x0 for agf 0
@@ -84,7 +84,7 @@ done
Corrupting agi 0 - setting bits to 0
Wrote X.XXKb (value 0x0)
Phase 1 - find and verify superblock...
Phase 2 - using internal log
Phase 2 - using <TYPEOF> log
- zero log...
- scan filesystem freespace and inode maps...
bad magic # 0x0 for agi 0
@@ -120,7 +120,7 @@ done
Corrupting agfl 0 - setting bits to 0
Wrote X.XXKb (value 0x0)
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
@@ -161,7 +161,7 @@ sb realtime bitmap inode INO inconsistent with calculated value INO
resetting superblock realtime bitmap ino pointer to INO
sb realtime summary inode INO inconsistent with calculated value INO
resetting superblock realtime summary ino pointer to INO
Phase 2 - using internal log
Phase 2 - using <TYPEOF> log
- zero log...
- scan filesystem freespace and inode maps...
- found root inode chunk
@@ -192,7 +192,7 @@ done
Corrupting agf 0 - setting bits to -1
Wrote X.XXKb (value 0xffffffff)
Phase 1 - find and verify superblock...
Phase 2 - using internal log
Phase 2 - using <TYPEOF> log
- zero log...
- scan filesystem freespace and inode maps...
bad magic # 0xffffffff for agf 0
@@ -231,7 +231,7 @@ done
Corrupting agi 0 - setting bits to -1
Wrote X.XXKb (value 0xffffffff)
Phase 1 - find and verify superblock...
Phase 2 - using internal log
Phase 2 - using <TYPEOF> log
- zero log...
- scan filesystem freespace and inode maps...
bad magic # 0xffffffff for agi 0
@@ -267,7 +267,7 @@ done
Corrupting agfl 0 - setting bits to -1
Wrote X.XXKb (value 0xffffffff)
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
+12 -10
View File
@@ -54,11 +54,11 @@ rm -f $seq.full
_check_repair()
{
xfs_repair $SCRATCH_DEV >$tmp.0 2>&1
_scratch_xfs_repair >$tmp.0 2>&1
for i in 1 2 3 4
do
echo "Repairing, iteration $i" | tee -a $seq.full
xfs_repair $SCRATCH_DEV 2>&1 | tee -a $seq.full >$tmp.$i
_scratch_xfs_repair 2>&1 | tee -a $seq.full >$tmp.$i
diff $tmp.0 $tmp.$i >> $seq.full
if [ $? -ne 0 ]; then
echo "ERROR: repair round $i differs (see $seq.full)"
@@ -67,6 +67,8 @@ _check_repair()
# echo all interesting stuff...
perl -ne '
s/(rebuilding directory inode) (\d+)/\1 INO/g;
s/internal log/<TYPEOF> log/g;
s/external log on \S+/<TYPEOF> log/g;
/^\S+/ && print;
' $tmp.$i
done
@@ -102,34 +104,34 @@ EOF
#
_require_scratch
MKFSV1="-p $tmp.proto -n version=1 $SCRATCH_DEV"
MKFSV2="-p $tmp.proto -n version=2 $SCRATCH_DEV"
MKFSV1="-p $tmp.proto -n version=1"
MKFSV2="-p $tmp.proto -n version=2"
# sanity test - default + one root directory entry
_create_proto 0
echo "=== version 1, one entry"
mkfs_xfs $MKFSV1 | _filter_mkfs >/dev/null 2>&1
_scratch_mkfs_xfs $MKFSV1 | _filter_mkfs >/dev/null 2>&1
_check_repair
echo "=== version 2, one entry (shortform)"
mkfs_xfs $MKFSV2 | _filter_mkfs >/dev/null 2>&1
_scratch_mkfs_xfs $MKFSV2 | _filter_mkfs >/dev/null 2>&1
_check_repair
# block-form root directory & repeat
_create_proto 20
echo "=== version 1, twenty entries"
mkfs_xfs $MKFSV1 | _filter_mkfs >/dev/null 2>&1
_scratch_mkfs_xfs $MKFSV1 | _filter_mkfs >/dev/null 2>&1
_check_repair
echo "=== version 2, twenty entries (block form)"
mkfs_xfs $MKFSV2 | _filter_mkfs >/dev/null 2>&1
_scratch_mkfs_xfs $MKFSV2 | _filter_mkfs >/dev/null 2>&1
_check_repair
# leaf-form root directory & repeat
_create_proto 1000
echo "=== version 1, thousand entries"
mkfs_xfs $MKFSV1 | _filter_mkfs >/dev/null 2>&1
_scratch_mkfs_xfs $MKFSV1 | _filter_mkfs >/dev/null 2>&1
_check_repair
echo "=== version 2, thousand entries (leaf form)"
mkfs_xfs $MKFSV2 | _filter_mkfs >/dev/null 2>&1
_scratch_mkfs_xfs $MKFSV2 | _filter_mkfs >/dev/null 2>&1
_check_repair
# success, all done
+24 -24
View File
@@ -2,7 +2,7 @@ QA output created by 031
=== version 1, one entry
Repairing, iteration 1
Phase 1 - find and verify superblock...
Phase 2 - using internal log
Phase 2 - using <TYPEOF> log
Phase 3 - for each AG...
Phase 4 - check for duplicate blocks...
Phase 5 - rebuild AG headers and trees...
@@ -11,7 +11,7 @@ Phase 7 - verify and correct link counts...
done
Repairing, iteration 2
Phase 1 - find and verify superblock...
Phase 2 - using internal log
Phase 2 - using <TYPEOF> log
Phase 3 - for each AG...
Phase 4 - check for duplicate blocks...
Phase 5 - rebuild AG headers and trees...
@@ -20,7 +20,7 @@ Phase 7 - verify and correct link counts...
done
Repairing, iteration 3
Phase 1 - find and verify superblock...
Phase 2 - using internal log
Phase 2 - using <TYPEOF> log
Phase 3 - for each AG...
Phase 4 - check for duplicate blocks...
Phase 5 - rebuild AG headers and trees...
@@ -29,7 +29,7 @@ Phase 7 - verify and correct link counts...
done
Repairing, iteration 4
Phase 1 - find and verify superblock...
Phase 2 - using internal log
Phase 2 - using <TYPEOF> log
Phase 3 - for each AG...
Phase 4 - check for duplicate blocks...
Phase 5 - rebuild AG headers and trees...
@@ -40,7 +40,7 @@ done
=== version 2, one entry (shortform)
Repairing, iteration 1
Phase 1 - find and verify superblock...
Phase 2 - using internal log
Phase 2 - using <TYPEOF> log
Phase 3 - for each AG...
Phase 4 - check for duplicate blocks...
Phase 5 - rebuild AG headers and trees...
@@ -49,7 +49,7 @@ Phase 7 - verify and correct link counts...
done
Repairing, iteration 2
Phase 1 - find and verify superblock...
Phase 2 - using internal log
Phase 2 - using <TYPEOF> log
Phase 3 - for each AG...
Phase 4 - check for duplicate blocks...
Phase 5 - rebuild AG headers and trees...
@@ -58,7 +58,7 @@ Phase 7 - verify and correct link counts...
done
Repairing, iteration 3
Phase 1 - find and verify superblock...
Phase 2 - using internal log
Phase 2 - using <TYPEOF> log
Phase 3 - for each AG...
Phase 4 - check for duplicate blocks...
Phase 5 - rebuild AG headers and trees...
@@ -67,7 +67,7 @@ Phase 7 - verify and correct link counts...
done
Repairing, iteration 4
Phase 1 - find and verify superblock...
Phase 2 - using internal log
Phase 2 - using <TYPEOF> log
Phase 3 - for each AG...
Phase 4 - check for duplicate blocks...
Phase 5 - rebuild AG headers and trees...
@@ -78,7 +78,7 @@ done
=== version 1, twenty entries
Repairing, iteration 1
Phase 1 - find and verify superblock...
Phase 2 - using internal log
Phase 2 - using <TYPEOF> log
Phase 3 - for each AG...
Phase 4 - check for duplicate blocks...
Phase 5 - rebuild AG headers and trees...
@@ -87,7 +87,7 @@ Phase 7 - verify and correct link counts...
done
Repairing, iteration 2
Phase 1 - find and verify superblock...
Phase 2 - using internal log
Phase 2 - using <TYPEOF> log
Phase 3 - for each AG...
Phase 4 - check for duplicate blocks...
Phase 5 - rebuild AG headers and trees...
@@ -96,7 +96,7 @@ Phase 7 - verify and correct link counts...
done
Repairing, iteration 3
Phase 1 - find and verify superblock...
Phase 2 - using internal log
Phase 2 - using <TYPEOF> log
Phase 3 - for each AG...
Phase 4 - check for duplicate blocks...
Phase 5 - rebuild AG headers and trees...
@@ -105,7 +105,7 @@ Phase 7 - verify and correct link counts...
done
Repairing, iteration 4
Phase 1 - find and verify superblock...
Phase 2 - using internal log
Phase 2 - using <TYPEOF> log
Phase 3 - for each AG...
Phase 4 - check for duplicate blocks...
Phase 5 - rebuild AG headers and trees...
@@ -116,7 +116,7 @@ done
=== version 2, twenty entries (block form)
Repairing, iteration 1
Phase 1 - find and verify superblock...
Phase 2 - using internal log
Phase 2 - using <TYPEOF> log
Phase 3 - for each AG...
Phase 4 - check for duplicate blocks...
Phase 5 - rebuild AG headers and trees...
@@ -126,7 +126,7 @@ Phase 7 - verify and correct link counts...
done
Repairing, iteration 2
Phase 1 - find and verify superblock...
Phase 2 - using internal log
Phase 2 - using <TYPEOF> log
Phase 3 - for each AG...
Phase 4 - check for duplicate blocks...
Phase 5 - rebuild AG headers and trees...
@@ -136,7 +136,7 @@ Phase 7 - verify and correct link counts...
done
Repairing, iteration 3
Phase 1 - find and verify superblock...
Phase 2 - using internal log
Phase 2 - using <TYPEOF> log
Phase 3 - for each AG...
Phase 4 - check for duplicate blocks...
Phase 5 - rebuild AG headers and trees...
@@ -146,7 +146,7 @@ Phase 7 - verify and correct link counts...
done
Repairing, iteration 4
Phase 1 - find and verify superblock...
Phase 2 - using internal log
Phase 2 - using <TYPEOF> log
Phase 3 - for each AG...
Phase 4 - check for duplicate blocks...
Phase 5 - rebuild AG headers and trees...
@@ -158,7 +158,7 @@ done
=== version 1, thousand entries
Repairing, iteration 1
Phase 1 - find and verify superblock...
Phase 2 - using internal log
Phase 2 - using <TYPEOF> log
Phase 3 - for each AG...
Phase 4 - check for duplicate blocks...
Phase 5 - rebuild AG headers and trees...
@@ -167,7 +167,7 @@ Phase 7 - verify and correct link counts...
done
Repairing, iteration 2
Phase 1 - find and verify superblock...
Phase 2 - using internal log
Phase 2 - using <TYPEOF> log
Phase 3 - for each AG...
Phase 4 - check for duplicate blocks...
Phase 5 - rebuild AG headers and trees...
@@ -176,7 +176,7 @@ Phase 7 - verify and correct link counts...
done
Repairing, iteration 3
Phase 1 - find and verify superblock...
Phase 2 - using internal log
Phase 2 - using <TYPEOF> log
Phase 3 - for each AG...
Phase 4 - check for duplicate blocks...
Phase 5 - rebuild AG headers and trees...
@@ -185,7 +185,7 @@ Phase 7 - verify and correct link counts...
done
Repairing, iteration 4
Phase 1 - find and verify superblock...
Phase 2 - using internal log
Phase 2 - using <TYPEOF> log
Phase 3 - for each AG...
Phase 4 - check for duplicate blocks...
Phase 5 - rebuild AG headers and trees...
@@ -196,7 +196,7 @@ done
=== version 2, thousand entries (leaf form)
Repairing, iteration 1
Phase 1 - find and verify superblock...
Phase 2 - using internal log
Phase 2 - using <TYPEOF> log
Phase 3 - for each AG...
Phase 4 - check for duplicate blocks...
Phase 5 - rebuild AG headers and trees...
@@ -206,7 +206,7 @@ Phase 7 - verify and correct link counts...
done
Repairing, iteration 2
Phase 1 - find and verify superblock...
Phase 2 - using internal log
Phase 2 - using <TYPEOF> log
Phase 3 - for each AG...
Phase 4 - check for duplicate blocks...
Phase 5 - rebuild AG headers and trees...
@@ -216,7 +216,7 @@ Phase 7 - verify and correct link counts...
done
Repairing, iteration 3
Phase 1 - find and verify superblock...
Phase 2 - using internal log
Phase 2 - using <TYPEOF> log
Phase 3 - for each AG...
Phase 4 - check for duplicate blocks...
Phase 5 - rebuild AG headers and trees...
@@ -226,7 +226,7 @@ Phase 7 - verify and correct link counts...
done
Repairing, iteration 4
Phase 1 - find and verify superblock...
Phase 2 - using internal log
Phase 2 - using <TYPEOF> log
Phase 3 - for each AG...
Phase 4 - check for duplicate blocks...
Phase 5 - rebuild AG headers and trees...
+3 -3
View File
@@ -75,16 +75,16 @@ _check_root_inos()
_require_scratch
# devzero blows away 512byte blocks, so make 512byte inodes (at least)
mkfs_xfs $SCRATCH_DEV | _filter_mkfs 2>$tmp.mkfs
_scratch_mkfs_xfs | _filter_mkfs 2>$tmp.mkfs
source $tmp.mkfs
[ $isize -lt 512 ] && \
mkfs_xfs -isize=512 $SCRATCH_DEV | _filter_mkfs >/dev/null 2>&1
_scratch_mkfs_xfs -isize=512 | _filter_mkfs >/dev/null 2>&1
`xfs_db -r -c sb -c p $SCRATCH_DEV | grep 'ino = ' | \
sed -e 's/ //g' -e 's/^/export /'`
# check we won't get any quota inodes setup on mount
mount -t xfs $SCRATCH_DEV $SCRATCH_MNT
_scratch_mount
src/feature -U $SCRATCH_DEV && \
_notrun "Quota are enabled, test needs controlled sb recovery"
src/feature -G $SCRATCH_DEV && \
+6 -6
View File
@@ -8,7 +8,7 @@ realtime =RDEV extsz=XXX blocks=XXX, rtextents=XXX
Corrupting root inode - setting bits to 0
Wrote X.XXKb (value 0x0)
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
@@ -44,7 +44,7 @@ done
Corrupting rt bitmap inode - setting bits to 0
Wrote X.XXKb (value 0x0)
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
@@ -80,7 +80,7 @@ done
Corrupting rt summary inode - setting bits to 0
Wrote X.XXKb (value 0x0)
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
@@ -116,7 +116,7 @@ done
Corrupting root inode - setting bits to -1
Wrote X.XXKb (value 0xffffffff)
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
@@ -154,7 +154,7 @@ done
Corrupting rt bitmap inode - setting bits to -1
Wrote X.XXKb (value 0xffffffff)
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
@@ -192,7 +192,7 @@ done
Corrupting rt summary inode - setting bits to -1
Wrote X.XXKb (value 0xffffffff)
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
+4 -4
View File
@@ -67,14 +67,14 @@ rm -f $seq.full
umount $SCRATCH_DEV >/dev/null 2>&1
echo "*** MKFS ***" >>$seq.full
echo "" >>$seq.full
mkfs_xfs $SCRATCH_DEV >>$seq.full 2>&1 \
_scratch_mkfs_xfs >>$seq.full 2>&1 \
|| _fail "mkfs failed"
mount -t xfs $SCRATCH_DEV $SCRATCH_MNT >>$seq.full 2>&1 \
_scratch_mount >>$seq.full 2>&1 \
|| _fail "mount failed"
echo "*** test"
_check_fs $SCRATCH_DEV
_check_scratch_fs
if ! touch $SCRATCH_MNT/fish
then
@@ -95,7 +95,7 @@ then
fi
# pv 801241 causes corruption here (inode left in agi_unlinked list)
_check_fs $SCRATCH_DEV
_check_scratch_fs
echo "*** done"
# happy exit
+3 -3
View File
@@ -75,8 +75,8 @@ rm -f $seq.full
#agsize=16
agsize=32
echo -n "Make $agsize megabyte filesystem on SCRATCH_DEV and mount... "
_do "mkfs_xfs -dsize=${agsize}m,agcount=1 $SCRATCH_DEV"
_do "mount -t xfs $SCRATCH_DEV $SCRATCH_MNT"
_do "_scratch_mkfs_xfs -dsize=${agsize}m,agcount=1"
_do "_scratch_mount"
echo "done"
# full allocation group -> partial; partial -> expand partial + new partial;
@@ -90,7 +90,7 @@ do
_do "Grow filesystem to $size blocks" "xfs_growfs -D ${size} $SCRATCH_MNT"
echo -n "Flush filesystem... "
_do "umount $SCRATCH_MNT"
_do "mount -t xfs $SCRATCH_DEV $SCRATCH_MNT"
_do "_scratch_mount"
echo "done"
echo -n "Check files... "
if ! _do "src/fill2fs_check $tmp.manifest"; then
+7 -9
View File
@@ -100,13 +100,11 @@ _cull_files()
# xfs_repair is going to need three to verify the superblock
rm -f $seq.full
bmap_cmd="xfs_bmap -v"
mnt_cmd="mount -t xfs $SCRATCH_DEV $SCRATCH_MNT"
_do_die_on_error=message_only
echo -n "Make a 48 megabyte filesystem on SCRATCH_DEV and mount... "
_do "mkfs_xfs -dsize=48m,agcount=3 $SCRATCH_DEV"
_do "$mnt_cmd"
_do "_scratch_mkfs_xfs -dsize=48m,agcount=3"
_do "_scratch_mount"
echo "done"
echo -n "Reserve 16 1Mb unfragmented regions... "
@@ -114,7 +112,7 @@ for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
do
_do "dd if=/dev/zero of=$SCRATCH_MNT/hole$i bs=4096 count=256"
_do "dd if=/dev/zero of=$SCRATCH_MNT/space$i bs=4096 count=1"
_do "$bmap_cmd $SCRATCH_MNT/hole$i"
_do "xfs_bmap -v $SCRATCH_MNT/hole$i"
done
echo "done"
@@ -125,7 +123,7 @@ _do "src/fill2fs $fill_options --dir=$SCRATCH_MNT/fill --list=- > $tmp.manifest"
echo "done"
# flush the filesystem - make sure there is no space "lost" to pre-allocation
_do "umount $SCRATCH_MNT"
_do "$mnt_cmd"
_do "_scratch_mount"
echo -n "Use up any further available space using dd... "
_do "dd if=/dev/zero of=$SCRATCH_MNT/pad bs=4096"
echo "done"
@@ -135,13 +133,13 @@ _do "Delete every second file" "_cull_files"
echo -n "Create one very large file... "
_do "src/fill2 -d nbytes=16000000,file=$SCRATCH_MNT/fragmented"
echo "done"
_do "$bmap_cmd $SCRATCH_MNT/fragmented"
_do "xfs_bmap -v $SCRATCH_MNT/fragmented"
_do "sum $SCRATCH_MNT/fragmented >$tmp.sum1"
_do "Remove other files" "rm -rf $SCRATCH_MNT/{pad,hole*}"
# defragment
_do "Run xfs_fsr on filesystem" "xfs_fsr -v $SCRATCH_DEV"
_do "$bmap_cmd $SCRATCH_MNT/fragmented"
_do "xfs_bmap -v $SCRATCH_MNT/fragmented"
_do "Check 4k files" "src/fill2fs_check $tmp.manifest"
# check
@@ -153,7 +151,7 @@ if ! _do "diff $tmp.sum1 $tmp.sum2"; then
status=1; exit
fi
echo "done"
_do "Checking filesystem" "_check_fs $SCRATCH_DEV"
_do "Checking filesystem" "_check_scratch_fs"
# success, all done
echo "xfs_fsr tests passed."
+3 -6
View File
@@ -70,7 +70,7 @@ _filter_logprint()
_check_mount()
{
echo " *** mount (expect success)"
if ! mount -t xfs -o logdev=$SCRATCH_LOGDEV $SCRATCH_DEV $SCRATCH_MNT
if ! _scratch_mount
then
echo " !!! mount failed (expecting success)"
status=1
@@ -89,7 +89,7 @@ _check_mount()
_check_no_mount()
{
echo " *** mount (expect failure)"
if mount -t xfs -o logdev=$SCRATCH_LOGDEV $SCRATCH_DEV $SCRATCH_MNT >$tmp.err 2>&1
if _scratch_mount >$tmp.err 2>&1
then
cat $tmp.err
echo " !!! mount succeeded (expecting failure)"
@@ -128,10 +128,7 @@ echo "*** mkfs"
lversion=1
lsize=16777216
ldev=$SCRATCH_LOGDEV
MKFS_OPTIONS="-llogdev=$ldev,size=$lsize,version=$lversion"; export MKFS_OPTIONS
mkfs_xfs $logopts $SCRATCH_DEV | _filter_mkfs 2>/dev/null
_scratch_mkfs_xfs -lsize=$lsize,version=$lversion | _filter_mkfs 2>/dev/null
_check_mount
_check_require_logdev

Some files were not shown because too many files have changed in this diff Show More