@@ -93,13 +93,14 @@ done
# Try to append to files; this should fail
echo "+ mount image"
-_scratch_mount
-
-echo "+ modify files"
-for x in `seq 1 64`; do
- $XFS_IO_PROG -f -c "pwrite -S 0x62 0 ${blksz}" "${TESTFILE}.${x}" >> $seqres.full
-done
-umount "${SCRATCH_MNT}"
+if _try_scratch_mount >> $seqres.full 2>&1; then
+
+ echo "+ modify files"
+ for x in `seq 1 64`; do
+ $XFS_IO_PROG -f -c "pwrite -S 0x62 0 ${blksz}" "${TESTFILE}.${x}" >> $seqres.full
+ done
+ umount "${SCRATCH_MNT}"
+fi
echo "+ repair fs"
_scratch_xfs_repair >> $seqres.full 2>&1
@@ -91,15 +91,16 @@ for ag in $(seq 1 $((agcount - 1))) 0; do
done
echo "+ mount image"
-_scratch_mount
-
-echo "+ modify files"
-broken=0
-for x in `seq 65 70`; do
- touch "${TESTFILE}.${x}" 2> /dev/null || broken=1
-done
-echo "broken: ${broken}"
-umount "${SCRATCH_MNT}"
+if _try_scratch_mount >> $seqres.full 2>&1; then
+
+ echo "+ modify files"
+ broken=0
+ for x in `seq 65 70`; do
+ touch "${TESTFILE}.${x}" 2> /dev/null || broken=1
+ done
+ echo "broken: ${broken}"
+ umount "${SCRATCH_MNT}"
+fi
echo "+ repair fs"
_scratch_xfs_repair >> $seqres.full 2>&1
@@ -92,13 +92,14 @@ done
# Try to append to files; this should fail
echo "+ mount image"
-_scratch_mount
-
-echo "+ modify files"
-for x in `seq 1 64`; do
- $XFS_IO_PROG -f -c "pwrite -S 0x62 0 ${blksz}" "${TESTFILE}.${x}" >> $seqres.full
-done
-umount "${SCRATCH_MNT}"
+if _try_scratch_mount >> $seqres.full 2>&1; then
+
+ echo "+ modify files"
+ for x in `seq 1 64`; do
+ $XFS_IO_PROG -f -c "pwrite -S 0x62 0 ${blksz}" "${TESTFILE}.${x}" >> $seqres.full
+ done
+ umount "${SCRATCH_MNT}"
+fi
echo "+ repair fs"
_scratch_xfs_repair >> $seqres.full 2>&1
@@ -92,13 +92,14 @@ done
# Try to append to files; this should fail
echo "+ mount image"
-_scratch_mount
-
-echo "+ modify files"
-for x in `seq 1 64`; do
- $XFS_IO_PROG -f -c "pwrite -S 0x62 0 ${blksz}" "${TESTFILE}.${x}" >> $seqres.full
-done
-umount "${SCRATCH_MNT}"
+if _try_scratch_mount >> $seqres.full 2>&1; then
+
+ echo "+ modify files"
+ for x in `seq 1 64`; do
+ $XFS_IO_PROG -f -c "pwrite -S 0x62 0 ${blksz}" "${TESTFILE}.${x}" >> $seqres.full
+ done
+ umount "${SCRATCH_MNT}"
+fi
echo "+ repair fs"
_scratch_xfs_repair >> $seqres.full 2>&1
@@ -92,13 +92,14 @@ done
# Try to append to files; this should fail
echo "+ mount image"
-_scratch_mount
-
-echo "+ modify files"
-for x in `seq 1 64`; do
- $XFS_IO_PROG -f -c "pwrite -S 0x62 0 ${blksz}" "${TESTFILE}.${x}" >> $seqres.full
-done
-umount "${SCRATCH_MNT}"
+if _try_scratch_mount >> $seqres.full 2>&1; then
+
+ echo "+ modify files"
+ for x in `seq 1 64`; do
+ $XFS_IO_PROG -f -c "pwrite -S 0x62 0 ${blksz}" "${TESTFILE}.${x}" >> $seqres.full
+ done
+ umount "${SCRATCH_MNT}"
+fi
echo "+ repair fs"
_scratch_xfs_repair >> $seqres.full 2>&1
@@ -91,15 +91,16 @@ for ag in $(seq 1 $((agcount - 1))) 0; do
done
echo "+ mount image"
-_scratch_mount
-
-echo "+ modify files"
-broken=0
-for x in `seq 65 70`; do
- touch "${TESTFILE}.${x}" 2> /dev/null || broken=1
-done
-echo "broken: ${broken}"
-umount "${SCRATCH_MNT}"
+if _try_scratch_mount >> $seqres.full 2>&1; then
+
+ echo "+ modify files"
+ broken=0
+ for x in `seq 65 70`; do
+ touch "${TESTFILE}.${x}" 2> /dev/null || broken=1
+ done
+ echo "broken: ${broken}"
+ umount "${SCRATCH_MNT}"
+fi
echo "+ repair fs"
_scratch_xfs_repair >> $seqres.full 2>&1
@@ -94,15 +94,16 @@ for ag in $(seq 1 $((agcount - 1))) 0; do
done
echo "+ mount image"
-_scratch_mount
-
-echo "+ modify files"
-broken=0
-for x in `seq 65 70`; do
- touch "${TESTFILE}.${x}" 2> /dev/null || broken=1
-done
-echo "broken: ${broken}"
-umount "${SCRATCH_MNT}"
+if _try_scratch_mount >> $seqres.full 2>&1; then
+
+ echo "+ modify files"
+ broken=0
+ for x in `seq 65 70`; do
+ touch "${TESTFILE}.${x}" 2> /dev/null || broken=1
+ done
+ echo "broken: ${broken}"
+ umount "${SCRATCH_MNT}"
+fi
echo "+ repair fs"
_scratch_xfs_repair >> $seqres.full 2>&1
@@ -82,12 +82,13 @@ echo "+ corrupt dir"
_scratch_xfs_db -x -c "inode ${inode}" -c 'dblock 0' -c "stack" -c "blocktrash -x 32 -y $((blksz * 8)) -z ${FUZZ_ARGS}" >> $seqres.full
echo "+ mount image"
-_scratch_mount
+if _try_scratch_mount >> $seqres.full 2>&1; then
-echo "+ modify dir"
-rm -rf "${SCRATCH_MNT}/blockdir/00000000" 2> /dev/null && _fail "modified corrupt directory"
-mkdir "${SCRATCH_MNT}/blockdir/xxxxxxxx" 2> /dev/null && _fail "add to corrupt directory"
-umount "${SCRATCH_MNT}"
+ echo "+ modify dir"
+ rm -rf "${SCRATCH_MNT}/blockdir/00000000" 2> /dev/null && _fail "modified corrupt directory"
+ mkdir "${SCRATCH_MNT}/blockdir/xxxxxxxx" 2> /dev/null && _fail "add to corrupt directory"
+ umount "${SCRATCH_MNT}"
+fi
echo "+ repair fs"
_scratch_xfs_repair >> $seqres.full 2>&1
@@ -87,12 +87,13 @@ while true; do
done
echo "+ mount image"
-_scratch_mount
+if _try_scratch_mount >> $seqres.full 2>&1; then
-echo "+ modify dir"
-rm -rf "${SCRATCH_MNT}/blockdir/00000000" 2> /dev/null && _fail "modified corrupt directory"
-mkdir "${SCRATCH_MNT}/blockdir/xxxxxxxx" 2> /dev/null && _fail "add to corrupt directory"
-umount "${SCRATCH_MNT}"
+ echo "+ modify dir"
+ rm -rf "${SCRATCH_MNT}/blockdir/00000000" 2> /dev/null && _fail "modified corrupt directory"
+ mkdir "${SCRATCH_MNT}/blockdir/xxxxxxxx" 2> /dev/null && _fail "add to corrupt directory"
+ umount "${SCRATCH_MNT}"
+fi
echo "+ repair fs"
_scratch_xfs_repair >> $seqres.full 2>&1
@@ -82,12 +82,13 @@ echo "+ corrupt dir"
_scratch_xfs_db -x -c "inode ${inode}" -c "dblock ${leaf_lblk}" -c "stack" -c "blocktrash -x 32 -y $((blksz * 8)) -z ${FUZZ_ARGS}" >> $seqres.full
echo "+ mount image"
-_scratch_mount
+if _try_scratch_mount >> $seqres.full 2>&1; then
-echo "+ modify dir"
-rm -rf "${SCRATCH_MNT}/blockdir/00000000" 2> /dev/null && _fail "modified corrupt directory"
-mkdir "${SCRATCH_MNT}/blockdir/xxxxxxxx" 2> /dev/null && _fail "add to corrupt directory"
-umount "${SCRATCH_MNT}"
+ echo "+ modify dir"
+ rm -rf "${SCRATCH_MNT}/blockdir/00000000" 2> /dev/null && _fail "modified corrupt directory"
+ mkdir "${SCRATCH_MNT}/blockdir/xxxxxxxx" 2> /dev/null && _fail "add to corrupt directory"
+ umount "${SCRATCH_MNT}"
+fi
echo "+ repair fs"
_scratch_xfs_repair >> $seqres.full 2>&1
@@ -87,12 +87,13 @@ while true; do
done
echo "+ mount image"
-_scratch_mount
+if _try_scratch_mount >> $seqres.full 2>&1; then
-echo "+ modify dir"
-rm -rf "${SCRATCH_MNT}/blockdir/00000000" 2> /dev/null && _fail "modified corrupt directory"
-mkdir "${SCRATCH_MNT}/blockdir/xxxxxxxx" 2> /dev/null && _fail "add to corrupt directory"
-umount "${SCRATCH_MNT}"
+ echo "+ modify dir"
+ rm -rf "${SCRATCH_MNT}/blockdir/00000000" 2> /dev/null && _fail "modified corrupt directory"
+ mkdir "${SCRATCH_MNT}/blockdir/xxxxxxxx" 2> /dev/null && _fail "add to corrupt directory"
+ umount "${SCRATCH_MNT}"
+fi
echo "+ repair fs"
_scratch_xfs_repair >> $seqres.full 2>&1
@@ -87,12 +87,13 @@ while true; do
done
echo "+ mount image"
-_scratch_mount
+if _try_scratch_mount >> $seqres.full 2>&1; then
-echo "+ modify dir"
-rm -rf "${SCRATCH_MNT}/blockdir/00000000" 2> /dev/null && _fail "modified corrupt directory"
-mkdir "${SCRATCH_MNT}/blockdir/xxxxxxxx" 2> /dev/null && _fail "add to corrupt directory"
-umount "${SCRATCH_MNT}"
+ echo "+ modify dir"
+ rm -rf "${SCRATCH_MNT}/blockdir/00000000" 2> /dev/null && _fail "modified corrupt directory"
+ mkdir "${SCRATCH_MNT}/blockdir/xxxxxxxx" 2> /dev/null && _fail "add to corrupt directory"
+ umount "${SCRATCH_MNT}"
+fi
echo "+ repair fs"
_scratch_xfs_repair >> $seqres.full 2>&1
@@ -87,12 +87,13 @@ while true; do
done
echo "+ mount image"
-_scratch_mount
+if _try_scratch_mount >> $seqres.full 2>&1; then
-echo "+ modify dir"
-rm -rf "${SCRATCH_MNT}/blockdir/00000000" 2> /dev/null && _fail "modified corrupt directory"
-mkdir "${SCRATCH_MNT}/blockdir/xxxxxxxx" 2> /dev/null && _fail "add to corrupt directory"
-umount "${SCRATCH_MNT}"
+ echo "+ modify dir"
+ rm -rf "${SCRATCH_MNT}/blockdir/00000000" 2> /dev/null && _fail "modified corrupt directory"
+ mkdir "${SCRATCH_MNT}/blockdir/xxxxxxxx" 2> /dev/null && _fail "add to corrupt directory"
+ umount "${SCRATCH_MNT}"
+fi
echo "+ repair fs"
_scratch_xfs_repair >> $seqres.full 2>&1
@@ -87,12 +87,13 @@ while true; do
done
echo "+ mount image"
-_scratch_mount
+if _try_scratch_mount >> $seqres.full 2>&1; then
-echo "+ modify dir"
-rm -rf "${SCRATCH_MNT}/blockdir/00000000" 2> /dev/null && _fail "modified corrupt directory"
-mkdir "${SCRATCH_MNT}/blockdir/xxxxxxxx" 2> /dev/null && _fail "add to corrupt directory"
-umount "${SCRATCH_MNT}"
+ echo "+ modify dir"
+ rm -rf "${SCRATCH_MNT}/blockdir/00000000" 2> /dev/null && _fail "modified corrupt directory"
+ mkdir "${SCRATCH_MNT}/blockdir/xxxxxxxx" 2> /dev/null && _fail "add to corrupt directory"
+ umount "${SCRATCH_MNT}"
+fi
echo "+ repair fs"
_scratch_xfs_repair >> $seqres.full 2>&1
@@ -90,18 +90,19 @@ seq "${inode}" "$((inode + 64))" | while read ino; do
done
echo "+ mount image"
-_scratch_mount
-
-echo "+ modify files"
-broken=0
-for x in `seq 1 64`; do
- stat "${TESTFILE}.${x}" >> $seqres.full 2>&1
- test $? -ne 0 && broken=1
- touch "${TESTFILE}.${x}" >> $seqres.full 2>&1
- test $? -ne 0 && broken=1
-done
-echo "broken: ${broken}"
-umount "${SCRATCH_MNT}"
+if _try_scratch_mount >> $seqres.full 2>&1; then
+
+ echo "+ modify files"
+ broken=0
+ for x in `seq 1 64`; do
+ stat "${TESTFILE}.${x}" >> $seqres.full 2>&1
+ test $? -ne 0 && broken=1
+ touch "${TESTFILE}.${x}" >> $seqres.full 2>&1
+ test $? -ne 0 && broken=1
+ done
+ echo "broken: ${broken}"
+ umount "${SCRATCH_MNT}"
+fi
echo "+ repair fs"
_scratch_xfs_repair >> $seqres.full 2>&1
@@ -79,14 +79,15 @@ echo "+ corrupt image"
_scratch_xfs_db -x -c "inode ${inode}" -c "addr u.bmbt.ptrs[1]" -c "addr u3.bmbt.ptrs[1]" -c "stack" -c "blocktrash -x 32 -y $((blksz * 8)) -z ${FUZZ_ARGS}" >> $seqres.full
echo "+ mount image"
-_scratch_mount
-
-echo "+ modify files"
-before="$(stat -c '%b' "${SCRATCH_MNT}/bigfile")"
-$XFS_IO_PROG -f -c "pwrite -S 0x62 ${blksz} ${blksz}" -c 'fsync' "${SCRATCH_MNT}/bigfile" >> $seqres.full 2> /dev/null
-after="$(stat -c '%b' "${SCRATCH_MNT}/bigfile")"
-test "${before}" -eq "${after}" || _fail "pwrite should fail on corrupt bmbt"
-umount "${SCRATCH_MNT}"
+if _try_scratch_mount >> $seqres.full 2>&1; then
+
+ echo "+ modify files"
+ before="$(stat -c '%b' "${SCRATCH_MNT}/bigfile")"
+ $XFS_IO_PROG -f -c "pwrite -S 0x62 ${blksz} ${blksz}" -c 'fsync' "${SCRATCH_MNT}/bigfile" >> $seqres.full 2> /dev/null
+ after="$(stat -c '%b' "${SCRATCH_MNT}/bigfile")"
+ test "${before}" -eq "${after}" || _fail "pwrite should fail on corrupt bmbt"
+ umount "${SCRATCH_MNT}"
+fi
echo "+ repair fs"
_scratch_xfs_repair >> $seqres.full 2>&1
@@ -78,9 +78,10 @@ echo "+ corrupt image"
_scratch_xfs_db -x -c "inode ${inode}" -c "dblock 0" -c "stack" -c "blocktrash -x 32 -o 256 -y $((blksz * 8)) -z ${FUZZ_ARGS}" >> $seqres.full
echo "+ mount image"
-_scratch_mount
-cat "${SCRATCH_MNT}/long_symlink" 2>/dev/null && _fail "symlink should be broken"
-umount "${SCRATCH_MNT}"
+if _try_scratch_mount >> $seqres.full 2>&1; then
+ cat "${SCRATCH_MNT}/long_symlink" 2>/dev/null && _fail "symlink should be broken"
+ umount "${SCRATCH_MNT}"
+fi
echo "+ repair fs"
_scratch_xfs_repair >> $seqres.full 2>&1
@@ -87,11 +87,12 @@ echo "+ corrupt xattr"
_scratch_xfs_db -x -c "inode ${inode}" -c 'ablock 0' -c "stack" -c "blocktrash -x 32 -y $((blksz * 8)) -z ${FUZZ_ARGS}" >> $seqres.full
echo "+ mount image"
-_scratch_mount
+if _try_scratch_mount >> $seqres.full 2>&1; then
-echo "+ modify xattr"
-setfattr -x "user.x00000000" "${SCRATCH_MNT}/attrfile" 2> /dev/null && _fail "modified corrupt xattr"
-umount "${SCRATCH_MNT}"
+ echo "+ modify xattr"
+ setfattr -x "user.x00000000" "${SCRATCH_MNT}/attrfile" 2> /dev/null && _fail "modified corrupt xattr"
+ umount "${SCRATCH_MNT}"
+fi
echo "+ repair fs"
_scratch_xfs_repair >> $seqres.full 2>&1
@@ -87,11 +87,12 @@ echo "+ corrupt xattr"
_scratch_xfs_db -x -c "inode ${inode}" -c 'ablock 0' -c "stack" -c "blocktrash -x 32 -o +32 -y $((blksz * 8)) -z ${FUZZ_ARGS}" >> $seqres.full
echo "+ mount image"
-_scratch_mount
+if _try_scratch_mount >> $seqres.full 2>&1; then
-echo "+ modify xattr"
-setfattr -x "user.x00000000" "${SCRATCH_MNT}/attrfile" 2> /dev/null && _fail "modified corrupt xattr"
-umount "${SCRATCH_MNT}"
+ echo "+ modify xattr"
+ setfattr -x "user.x00000000" "${SCRATCH_MNT}/attrfile" 2> /dev/null && _fail "modified corrupt xattr"
+ umount "${SCRATCH_MNT}"
+fi
echo "+ repair fs"
_scratch_xfs_repair >> $seqres.full 2>&1
@@ -92,11 +92,12 @@ while true; do
done
echo "+ mount image"
-_scratch_mount
+if _try_scratch_mount >> $seqres.full 2>&1; then
-echo "+ modify xattr"
-setfattr -x "user.x00000000" "${SCRATCH_MNT}/attrfile" 2> /dev/null && _fail "modified corrupt xattr"
-umount "${SCRATCH_MNT}"
+ echo "+ modify xattr"
+ setfattr -x "user.x00000000" "${SCRATCH_MNT}/attrfile" 2> /dev/null && _fail "modified corrupt xattr"
+ umount "${SCRATCH_MNT}"
+fi
echo "+ repair fs"
_scratch_xfs_repair >> $seqres.full 2>&1
@@ -77,12 +77,13 @@ seq 0 $((agcount - 1)) | while read ag; do
done
echo "+ mount image"
-_scratch_mount
+if _try_scratch_mount >> $seqres.full 2>&1; then
-echo "+ copy more"
-$XFS_IO_PROG -f -c "pwrite -S 0x63 0 $((blksz * 64))" -c "fsync" ${SCRATCH_MNT}/file4 >> $seqres.full 2>&1
-test -s ${SCRATCH_MNT}/file4 && _fail "should not be able to copy with busted rmap btree"
-umount ${SCRATCH_MNT}
+ echo "+ copy more"
+ $XFS_IO_PROG -f -c "pwrite -S 0x63 0 $((blksz * 64))" -c "fsync" ${SCRATCH_MNT}/file4 >> $seqres.full 2>&1
+ test -s ${SCRATCH_MNT}/file4 && _fail "should not be able to copy with busted rmap btree"
+ umount ${SCRATCH_MNT}
+fi
echo "+ repair fs"
_disable_dmesg_check
@@ -85,12 +85,13 @@ _scratch_xfs_db -x -c "sb" -c "addr rrmapino" -c "addr u3.rtrmapbt.ptrs[1]" \
>> $seqres.full 2>&1
echo "+ mount image"
-_scratch_mount
+if _try_scratch_mount >> $seqres.full 2>&1; then
-echo "+ copy more"
-$XFS_IO_PROG -f -R -c "pwrite -S 0x68 0 1" $SCRATCH_MNT/e3 >> $seqres.full 2>&1
-test -s ${SCRATCH_MNT}/f3 && echo "should not be able to copy with busted rtrmap btree"
-_scratch_unmount
+ echo "+ copy more"
+ $XFS_IO_PROG -f -R -c "pwrite -S 0x68 0 1" $SCRATCH_MNT/e3 >> $seqres.full 2>&1
+ test -s ${SCRATCH_MNT}/f3 && echo "should not be able to copy with busted rtrmap btree"
+ _scratch_unmount
+fi
echo "+ repair fs"
_repair_scratch_fs >> $seqres.full 2>&1