xfs: fix $XFS_DB_PROG usage

xfs_db requires us to pass in the log device, if any; this can be
accomplished via _scratch_xfs_db_options (if we're operating on the
scratch device, anyway).  However, many of the tests/xfs/ scripts
pass only $SCRATCH_DEV directly, so they'll fail if we test with an
external log.  Fix that by adding a new _scratch_xfs_db helper.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Eryu Guan <eguan@redhat.com>
This commit is contained in:
Darrick J. Wong
2016-09-29 19:23:41 -07:00
committed by Eryu Guan
parent fff869cb9c
commit c08ebd092d
37 changed files with 137 additions and 137 deletions
+48 -52
View File
@@ -275,38 +275,35 @@ __populate_find_inode() {
# Check data fork format of XFS file
__populate_check_xfs_dformat() {
dev="$1"
inode="$2"
format="$3"
inode="$1"
format="$2"
fmt="$($XFS_DB_PROG -c "inode ${inode}" -c 'p core.format' "${dev}" | sed -e 's/^.*(\([a-z]*\)).*$/\1/g')"
fmt="$(_scratch_xfs_db -c "inode ${inode}" -c 'p core.format' | sed -e 's/^.*(\([a-z]*\)).*$/\1/g')"
test "${format}" = "${fmt}" || _fail "failed to create ino ${inode} dformat expected ${format} saw ${fmt}"
}
# Check attr fork format of XFS file
__populate_check_xfs_aformat() {
dev="$1"
inode="$2"
format="$3"
inode="$1"
format="$2"
fmt="$($XFS_DB_PROG -c "inode ${inode}" -c 'p core.aformat' "${dev}" | sed -e 's/^.*(\([a-z]*\)).*$/\1/g')"
fmt="$(_scratch_xfs_db -c "inode ${inode}" -c 'p core.aformat' | sed -e 's/^.*(\([a-z]*\)).*$/\1/g')"
test "${format}" = "${fmt}" || _fail "failed to create ino ${inode} aformat expected ${format} saw ${fmt}"
}
# Check structure of XFS directory
__populate_check_xfs_dir() {
dev="$1"
inode="$2"
dtype="$3"
inode="$1"
dtype="$2"
(test -n "${leaf_lblk}" && test -n "${node_lblk}") || _fail "must define leaf_lblk and node_lblk before calling __populate_check_xfs_dir"
datab=0
leafb=0
freeb=0
#echo "== check dir ${inode} type ${dtype}" ; $XFS_DB_PROG -x -c "inode ${inode}" -c "bmap" "${SCRATCH_DEV}"
$XFS_DB_PROG -x -c "inode ${inode}" -c "dblock 0" -c "stack" "${SCRATCH_DEV}" | grep -q 'file data block is unmapped' || datab=1
$XFS_DB_PROG -x -c "inode ${inode}" -c "dblock ${leaf_lblk}" -c "stack" "${SCRATCH_DEV}" | grep -q 'file data block is unmapped' || leafb=1
$XFS_DB_PROG -x -c "inode ${inode}" -c "dblock ${node_lblk}" -c "stack" "${SCRATCH_DEV}" | grep -q 'file data block is unmapped' || freeb=1
#echo "== check dir ${inode} type ${dtype}" ; _scratch_xfs_db -x -c "inode ${inode}" -c "bmap"
_scratch_xfs_db -x -c "inode ${inode}" -c "dblock 0" -c "stack" | grep -q 'file data block is unmapped' || datab=1
_scratch_xfs_db -x -c "inode ${inode}" -c "dblock ${leaf_lblk}" -c "stack" | grep -q 'file data block is unmapped' || leafb=1
_scratch_xfs_db -x -c "inode ${inode}" -c "dblock ${node_lblk}" -c "stack" | grep -q 'file data block is unmapped' || freeb=1
case "${dtype}" in
"shortform"|"inline"|"local")
@@ -328,15 +325,14 @@ __populate_check_xfs_dir() {
# Check structure of XFS attr
__populate_check_xfs_attr() {
dev="$1"
inode="$2"
atype="$3"
inode="$1"
atype="$2"
datab=0
leafb=0
#echo "== check attr ${inode} type ${dtype}" ; $XFS_DB_PROG -x -c "inode ${inode}" -c "bmap -a" "${SCRATCH_DEV}"
$XFS_DB_PROG -x -c "inode ${inode}" -c "ablock 0" -c "stack" "${SCRATCH_DEV}" | grep -q 'file attr block is unmapped' || datab=1
$XFS_DB_PROG -x -c "inode ${inode}" -c "ablock 1" -c "stack" "${SCRATCH_DEV}" | grep -q 'file attr block is unmapped' || leafb=1
#echo "== check attr ${inode} type ${dtype}" ; _scratch_xfs_db -x -c "inode ${inode}" -c "bmap -a"
_scratch_xfs_db -x -c "inode ${inode}" -c "ablock 0" -c "stack" | grep -q 'file attr block is unmapped' || datab=1
_scratch_xfs_db -x -c "inode ${inode}" -c "ablock 1" -c "stack" | grep -q 'file attr block is unmapped' || leafb=1
case "${atype}" in
"shortform"|"inline"|"local")
@@ -378,28 +374,28 @@ _scratch_xfs_populate_check() {
node_lblk="$((64 * 1073741824 / blksz))"
umount "${SCRATCH_MNT}"
__populate_check_xfs_dformat "${SCRATCH_DEV}" "${extents_file}" "extents"
__populate_check_xfs_dformat "${SCRATCH_DEV}" "${btree_file}" "btree"
__populate_check_xfs_dir "${SCRATCH_DEV}" "${inline_dir}" "inline"
__populate_check_xfs_dir "${SCRATCH_DEV}" "${block_dir}" "block"
__populate_check_xfs_dir "${SCRATCH_DEV}" "${leaf_dir}" "leaf"
__populate_check_xfs_dir "${SCRATCH_DEV}" "${node_dir}" "node"
__populate_check_xfs_dir "${SCRATCH_DEV}" "${btree_dir}" "btree"
__populate_check_xfs_dformat "${SCRATCH_DEV}" "${btree_dir}" "btree"
__populate_check_xfs_dformat "${SCRATCH_DEV}" "${bdev}" "dev"
__populate_check_xfs_dformat "${SCRATCH_DEV}" "${cdev}" "dev"
__populate_check_xfs_attr "${SCRATCH_DEV}" "${local_attr}" "local"
__populate_check_xfs_attr "${SCRATCH_DEV}" "${leaf_attr}" "leaf"
__populate_check_xfs_attr "${SCRATCH_DEV}" "${node_attr}" "node"
__populate_check_xfs_attr "${SCRATCH_DEV}" "${btree_attr}" "btree"
__populate_check_xfs_aformat "${SCRATCH_DEV}" "${btree_attr}" "btree"
__populate_check_xfs_dformat "${extents_file}" "extents"
__populate_check_xfs_dformat "${btree_file}" "btree"
__populate_check_xfs_dir "${inline_dir}" "inline"
__populate_check_xfs_dir "${block_dir}" "block"
__populate_check_xfs_dir "${leaf_dir}" "leaf"
__populate_check_xfs_dir "${node_dir}" "node"
__populate_check_xfs_dir "${btree_dir}" "btree"
__populate_check_xfs_dformat "${btree_dir}" "btree"
__populate_check_xfs_dformat "${bdev}" "dev"
__populate_check_xfs_dformat "${cdev}" "dev"
__populate_check_xfs_attr "${local_attr}" "local"
__populate_check_xfs_attr "${leaf_attr}" "leaf"
__populate_check_xfs_attr "${node_attr}" "node"
__populate_check_xfs_attr "${btree_attr}" "btree"
__populate_check_xfs_aformat "${btree_attr}" "btree"
}
# Check data fork format of ext4 file
__populate_check_ext4_dformat() {
dev="$1"
inode="$2"
format="$3"
dev="${SCRATCH_DEV}"
inode="$1"
format="$2"
extents=0
etree=0
@@ -424,9 +420,9 @@ __populate_check_ext4_dformat() {
# Check attr fork format of ext4 file
__populate_check_ext4_aformat() {
dev="$1"
inode="$2"
format="$3"
dev="${SCRATCH_DEV}"
inode="$1"
format="$2"
ablock=1
debugfs -R "stat <${inode}>" "${dev}" 2> /dev/null | grep 'File ACL: 0' -q && ablock=0
@@ -445,9 +441,9 @@ __populate_check_ext4_aformat() {
# Check structure of ext4 dir
__populate_check_ext4_dir() {
dev="$1"
inode="$2"
dtype="$3"
dev="${SCRATCH_DEV}"
inode="$1"
dtype="$2"
htree=0
inline=0
@@ -483,13 +479,13 @@ _scratch_ext4_populate_check() {
block_attr="$(__populate_find_inode "${SCRATCH_MNT}/ATTR.FMT_BLOCK")"
umount "${SCRATCH_MNT}"
__populate_check_ext4_dformat "${SCRATCH_DEV}" "${extents_file}" "extents"
__populate_check_ext4_dformat "${SCRATCH_DEV}" "${etree_file}" "etree"
__populate_check_ext4_dir "${SCRATCH_DEV}" "${block_dir}" "block"
__populate_check_ext4_dir "${SCRATCH_DEV}" "${htree_dir}" "htree"
__populate_check_ext4_dformat "${SCRATCH_DEV}" "${extents_slink}" "extents"
__populate_check_ext4_aformat "${SCRATCH_DEV}" "${local_attr}" "local"
__populate_check_ext4_aformat "${SCRATCH_DEV}" "${block_attr}" "block"
__populate_check_ext4_dformat "${extents_file}" "extents"
__populate_check_ext4_dformat "${etree_file}" "etree"
__populate_check_ext4_dir "${block_dir}" "block"
__populate_check_ext4_dir "${htree_dir}" "htree"
__populate_check_ext4_dformat "${extents_slink}" "extents"
__populate_check_ext4_aformat "${local_attr}" "local"
__populate_check_ext4_aformat "${block_attr}" "block"
}
# Populate a scratch FS and check the contents to make sure we got that
+8 -3
View File
@@ -1106,6 +1106,11 @@ _scratch_xfs_db_options()
echo $SCRATCH_OPTIONS $* $SCRATCH_DEV
}
_scratch_xfs_db()
{
$XFS_DB_PROG "$@" $(_scratch_xfs_db_options)
}
_scratch_xfs_logprint()
{
SCRATCH_OPTIONS=""
@@ -2083,7 +2088,7 @@ _require_xfs_db_command()
fi
command=$1
$XFS_DB_PROG -x -c "help" $SCRATCH_DEV | grep $command > /dev/null || \
_scratch_xfs_db -x -c "help" | grep $command > /dev/null || \
_notrun "xfs_db $command support is missing"
}
@@ -3367,11 +3372,11 @@ _require_meta_uuid()
# This will create a crc fs on $SCRATCH_DEV
_require_xfs_crc
$XFS_DB_PROG -x -c "uuid restore" $SCRATCH_DEV 2>&1 \
_scratch_xfs_db -x -c "uuid restore" 2>&1 \
| grep -q "invalid UUID\|supported on V5 fs" \
&& _notrun "Userspace doesn't support meta_uuid feature"
$XFS_DB_PROG -x -c "uuid generate" $SCRATCH_DEV >/dev/null 2>&1
_scratch_xfs_db -x -c "uuid generate" >/dev/null 2>&1
_scratch_mount >/dev/null 2>&1 \
|| _notrun "Kernel doesn't support meta_uuid feature"
+8 -8
View File
@@ -44,11 +44,11 @@ _do_bit_test()
bits="$2"
echo "testing $field with $bits bits"
$XFS_DB_PROG -x -c "inode $FILE_INO" -c "write $field 0" $SCRATCH_DEV
_scratch_xfs_db -x -c "inode $FILE_INO" -c "write $field 0"
num=1
for n in `seq 0 1 $bits`; do
$XFS_DB_PROG -x -c "inode $FILE_INO" \
-c "write $field $num" $SCRATCH_DEV
_scratch_xfs_db -x -c "inode $FILE_INO" \
-c "write $field $num"
let num=$num*2
done
echo
@@ -89,10 +89,10 @@ _do_bit_test "u.bmx[0].startoff" $BMBT_STARTOFF_BITLEN
_do_bit_test "u.bmx[0].startblock" $BMBT_STARTBLOCK_BITLEN
_do_bit_test "u.bmx[0].blockcount" $BMBT_BLOCKCOUNT_BITLEN
# test setting the 32 bit generation number
$XFS_DB_PROG -x -c "inode $FILE_INO" -c "write core.gen 0x5a" $SCRATCH_DEV
$XFS_DB_PROG -x -c "inode $FILE_INO" -c "write core.gen 0xa5" $SCRATCH_DEV
$XFS_DB_PROG -x -c "inode $FILE_INO" -c "write core.gen 0" $SCRATCH_DEV
$XFS_DB_PROG -x -c "inode $FILE_INO" -c "write core.gen #5a5a" $SCRATCH_DEV
$XFS_DB_PROG -x -c "inode $FILE_INO" -c "write core.gen #a5a5" $SCRATCH_DEV
_scratch_xfs_db -x -c "inode $FILE_INO" -c "write core.gen 0x5a"
_scratch_xfs_db -x -c "inode $FILE_INO" -c "write core.gen 0xa5"
_scratch_xfs_db -x -c "inode $FILE_INO" -c "write core.gen 0"
_scratch_xfs_db -x -c "inode $FILE_INO" -c "write core.gen #5a5a"
_scratch_xfs_db -x -c "inode $FILE_INO" -c "write core.gen #a5a5"
status=0
exit
+2 -2
View File
@@ -62,8 +62,8 @@ _scratch_mkfs_xfs -m crc=0 -d size=128m >> $seqres.full 2>&1 || _fail "mkfs fail
# Scribble past a couple V4 secondary superblocks to populate sb_crc
# (We can't write to the structure member because it doesn't exist
# on a v4 superblock, so we use the data type & "write fill")
$XFS_DB_PROG -x -c "sb 1" -c "type data" -c "write fill 0xff 224 4" $SCRATCH_DEV
$XFS_DB_PROG -x -c "sb 2" -c "type data" -c "write fill 0xff 224 4" $SCRATCH_DEV
_scratch_xfs_db -x -c "sb 1" -c "type data" -c "write fill 0xff 224 4"
_scratch_xfs_db -x -c "sb 2" -c "type data" -c "write fill 0xff 224 4"
_scratch_mount
+2 -2
View File
@@ -100,8 +100,8 @@ _scratch_mkfs | _filter_mkfs > /dev/null 2> $tmp.mkfs || _fail "mkfs failed"
. $tmp.mkfs # import agcount
# corrupt the last secondary sb in the fs
$XFS_DB_PROG -x -c "sb $((agcount - 1))" -c "type data" \
-c "write fill 0xff 0 512" $SCRATCH_DEV
_scratch_xfs_db -x -c "sb $((agcount - 1))" -c "type data" \
-c "write fill 0xff 0 512"
# attempt to repair
_xfs_repair_noscan
+3 -3
View File
@@ -64,9 +64,9 @@ _test_uuid()
ACTION=$1
EXPECTED_UUID=$2
$XFS_DB_PROG -x -c "uuid $ACTION" $SCRATCH_DEV \
_scratch_xfs_db -x -c "uuid $ACTION" \
| _filter_uuid $EXPECTED_UUID
NEW_UUID=`$XFS_DB_PROG -c "uuid" $SCRATCH_DEV | awk '{print $NF}'`
NEW_UUID=`_scratch_xfs_db -c "uuid" | awk '{print $NF}'`
_check_scratch_fs
_scratch_mount || _fail "Mount failed after UUID $ACTION"
_scratch_unmount
@@ -83,7 +83,7 @@ rm -f $seqres.full
_scratch_mkfs_xfs -m crc=1 >> $seqres.full 2>&1 || _fail "mkfs failed"
ORIG_UUID=`$XFS_DB_PROG -c "uuid" $SCRATCH_DEV | awk '{print $NF}'`
ORIG_UUID=`_scratch_xfs_db -c "uuid" | awk '{print $NF}'`
_scratch_mount
# Put some stuff on the fs
+1 -1
View File
@@ -87,7 +87,7 @@ _scratch_xfs_repair -n >> $seqres.full 2>&1 || _fail "xfs_repair should not fail
echo "+ corrupt image"
for ag in $(seq 1 $((agcount - 1))) 0; do
$XFS_DB_PROG -x -c "agf ${ag}" -c "agf ${ag}" -c "stack" -c "blocktrash -x 32 -o +64 -y 4096 -z ${FUZZ_ARGS}" "${SCRATCH_DEV}" >> $seqres.full 2>&1
_scratch_xfs_db -x -c "agf ${ag}" -c "agf ${ag}" -c "stack" -c "blocktrash -x 32 -o +64 -y 4096 -z ${FUZZ_ARGS}" >> $seqres.full 2>&1
done
# Try to append to files; this should fail
+1 -1
View File
@@ -86,7 +86,7 @@ _scratch_xfs_repair -n >> $seqres.full 2>&1 || _fail "xfs_repair should not fail
echo "+ corrupt image"
for ag in $(seq 1 $((agcount - 1))) 0; do
$XFS_DB_PROG -x -c "agi ${ag}" -c "agi ${ag}" -c "stack" -c "blocktrash -x 32 -o +64 -y 4096 -z ${FUZZ_ARGS}" "${SCRATCH_DEV}" >> $seqres.full 2>&1
_scratch_xfs_db -x -c "agi ${ag}" -c "agi ${ag}" -c "stack" -c "blocktrash -x 32 -o +64 -y 4096 -z ${FUZZ_ARGS}" >> $seqres.full 2>&1
done
echo "+ mount image"
+1 -1
View File
@@ -86,7 +86,7 @@ _scratch_xfs_repair -n >> $seqres.full 2>&1 || _fail "xfs_repair should not fail
echo "+ corrupt image"
for ag in $(seq 1 $((agcount - 1))) 0; do
$XFS_DB_PROG -x -c "agfl ${ag}" -c "agfl ${ag}" -c "stack" -c "blocktrash -x 32 -o +64 -y 4096 -z ${FUZZ_ARGS}" "${SCRATCH_DEV}" >> $seqres.full 2>&1
_scratch_xfs_db -x -c "agfl ${ag}" -c "agfl ${ag}" -c "stack" -c "blocktrash -x 32 -o +64 -y 4096 -z ${FUZZ_ARGS}" >> $seqres.full 2>&1
done
# Try to append to files; this should fail
+1 -1
View File
@@ -86,7 +86,7 @@ _scratch_xfs_repair -n >> $seqres.full 2>&1 || _fail "xfs_repair should not fail
echo "+ corrupt image"
for ag in $(seq 1 $((agcount - 1))) 0; do
$XFS_DB_PROG -x -c "agf ${ag}" -c "agf ${ag}" -c "addr bnoroot" -c "stack" -c "blocktrash -x 32 -y $((blksz * 8)) -z ${FUZZ_ARGS}" "${SCRATCH_DEV}" >> $seqres.full 2>&1
_scratch_xfs_db -x -c "agf ${ag}" -c "agf ${ag}" -c "addr bnoroot" -c "stack" -c "blocktrash -x 32 -y $((blksz * 8)) -z ${FUZZ_ARGS}" >> $seqres.full 2>&1
done
# Try to append to files; this should fail
+1 -1
View File
@@ -86,7 +86,7 @@ _scratch_xfs_repair -n >> $seqres.full 2>&1 || _fail "xfs_repair should not fail
echo "+ corrupt image"
for ag in $(seq 1 $((agcount - 1))) 0; do
$XFS_DB_PROG -x -c "agf ${ag}" -c "agf ${ag}" -c "addr cntroot" -c "stack" -c "blocktrash -x 32 -y $((blksz * 8)) -z ${FUZZ_ARGS}" "${SCRATCH_DEV}" >> $seqres.full 2>&1
_scratch_xfs_db -x -c "agf ${ag}" -c "agf ${ag}" -c "addr cntroot" -c "stack" -c "blocktrash -x 32 -y $((blksz * 8)) -z ${FUZZ_ARGS}" >> $seqres.full 2>&1
done
# Try to append to files; this should fail
+1 -1
View File
@@ -86,7 +86,7 @@ _scratch_xfs_repair -n >> $seqres.full 2>&1 || _fail "xfs_repair should not fail
echo "+ corrupt image"
for ag in $(seq 1 $((agcount - 1))) 0; do
$XFS_DB_PROG -x -c "agi ${ag}" -c "agi ${ag}" -c "addr root" -c "stack" -c "blocktrash -x 32 -y $((blksz * 8)) -z ${FUZZ_ARGS}" "${SCRATCH_DEV}" >> $seqres.full 2>&1
_scratch_xfs_db -x -c "agi ${ag}" -c "agi ${ag}" -c "addr root" -c "stack" -c "blocktrash -x 32 -y $((blksz * 8)) -z ${FUZZ_ARGS}" >> $seqres.full 2>&1
done
echo "+ mount image"
+1 -1
View File
@@ -89,7 +89,7 @@ _scratch_xfs_repair -n >> $seqres.full 2>&1 || _fail "xfs_repair should not fail
echo "+ corrupt image"
for ag in $(seq 1 $((agcount - 1))) 0; do
$XFS_DB_PROG -x -c "agi ${ag}" -c "agi ${ag}" -c "addr free_root" -c "stack" -c "blocktrash -x 32 -y $((blksz * 8)) -z ${FUZZ_ARGS}" "${SCRATCH_DEV}" >> $seqres.full 2>&1
_scratch_xfs_db -x -c "agi ${ag}" -c "agi ${ag}" -c "addr free_root" -c "stack" -c "blocktrash -x 32 -y $((blksz * 8)) -z ${FUZZ_ARGS}" >> $seqres.full 2>&1
done
echo "+ mount image"
+2 -2
View File
@@ -95,8 +95,8 @@ echo "+ check fs"
_scratch_xfs_repair -n >> $seqres.full 2>&1 || _fail "xfs_repair should not fail"
echo "+ corrupt image"
logstart="$($XFS_DB_PROG -c 'sb 0' -c 'p' "${SCRATCH_DEV}" | grep '^logstart =' | cut -d ' ' -f 3)"
logstart="$($XFS_DB_PROG -c "convert fsblock ${logstart} byte" "${SCRATCH_DEV}" | sed -e 's/^.*(\([0-9]*\).*$/\1/g')"
logstart="$(_scratch_xfs_db -c 'sb 0' -c 'p' | grep '^logstart =' | cut -d ' ' -f 3)"
logstart="$(_scratch_xfs_db -c "convert fsblock ${logstart} byte" | sed -e 's/^.*(\([0-9]*\).*$/\1/g')"
logblocks="$(xfs_db -c 'sb 0' -c 'p' "${SCRATCH_DEV}" | grep '^logblocks =' | cut -d ' ' -f 3)"
$XFS_IO_PROG -f -c "pwrite -S 0x62 ${logstart} $((logblocks * blksz))" "${SCRATCH_DEV}" >> $seqres.full
+1 -1
View File
@@ -78,7 +78,7 @@ echo "+ check dir"
__populate_check_xfs_dir "${SCRATCH_DEV}" "${inode}" block
echo "+ corrupt dir"
$XFS_DB_PROG -x -c "inode ${inode}" -c 'dblock 0' -c "stack" -c "blocktrash -x 32 -y $((blksz * 8)) -z ${FUZZ_ARGS}" "${SCRATCH_DEV}" >> $seqres.full
_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
+2 -2
View File
@@ -80,8 +80,8 @@ __populate_check_xfs_dir "${SCRATCH_DEV}" "${inode}" leaf
echo "+ corrupt dir"
loff=0
while true; do
$XFS_DB_PROG -x -c "inode ${inode}" -c "dblock ${loff}" -c "stack" "${SCRATCH_DEV}" | grep -q 'file data block is unmapped' && break
$XFS_DB_PROG -x -c "inode ${inode}" -c "dblock ${loff}" -c "stack" -c "blocktrash -x 32 -y $((blksz * 8)) -z ${FUZZ_ARGS}" "${SCRATCH_DEV}" >> $seqres.full
_scratch_xfs_db -x -c "inode ${inode}" -c "dblock ${loff}" -c "stack" | grep -q 'file data block is unmapped' && break
_scratch_xfs_db -x -c "inode ${inode}" -c "dblock ${loff}" -c "stack" -c "blocktrash -x 32 -y $((blksz * 8)) -z ${FUZZ_ARGS}" >> $seqres.full
loff="$((loff + 1))"
done
+1 -1
View File
@@ -78,7 +78,7 @@ echo "+ check dir"
__populate_check_xfs_dir "${SCRATCH_DEV}" "${inode}" leaf
echo "+ corrupt dir"
$XFS_DB_PROG -x -c "inode ${inode}" -c "dblock ${leaf_lblk}" -c "stack" -c "blocktrash -x 32 -y $((blksz * 8)) -z ${FUZZ_ARGS}" "${SCRATCH_DEV}" >> $seqres.full
_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
+2 -2
View File
@@ -80,8 +80,8 @@ __populate_check_xfs_dir "${SCRATCH_DEV}" "${inode}" node
echo "+ corrupt dir"
loff=0
while true; do
$XFS_DB_PROG -x -c "inode ${inode}" -c "dblock ${loff}" -c "stack" "${SCRATCH_DEV}" | grep -q 'file data block is unmapped' && break
$XFS_DB_PROG -x -c "inode ${inode}" -c "dblock ${loff}" -c "stack" -c "blocktrash -x 32 -y $((blksz * 8)) -z ${FUZZ_ARGS}" "${SCRATCH_DEV}" >> $seqres.full
_scratch_xfs_db -x -c "inode ${inode}" -c "dblock ${loff}" -c "stack" | grep -q 'file data block is unmapped' && break
_scratch_xfs_db -x -c "inode ${inode}" -c "dblock ${loff}" -c "stack" -c "blocktrash -x 32 -y $((blksz * 8)) -z ${FUZZ_ARGS}" >> $seqres.full
loff="$((loff + 1))"
done
+2 -2
View File
@@ -80,8 +80,8 @@ __populate_check_xfs_dir "${SCRATCH_DEV}" "${inode}" node
echo "+ corrupt dir"
loff="${leaf_lblk}"
while true; do
$XFS_DB_PROG -x -c "inode ${inode}" -c "dblock ${loff}" -c "stack" "${SCRATCH_DEV}" | grep -q 'file data block is unmapped' && break
$XFS_DB_PROG -x -c "inode ${inode}" -c "dblock ${loff}" -c "stack" -c "blocktrash -x 32 -y $((blksz * 8)) -z ${FUZZ_ARGS}" "${SCRATCH_DEV}" >> $seqres.full
_scratch_xfs_db -x -c "inode ${inode}" -c "dblock ${loff}" -c "stack" | grep -q 'file data block is unmapped' && break
_scratch_xfs_db -x -c "inode ${inode}" -c "dblock ${loff}" -c "stack" -c "blocktrash -x 32 -y $((blksz * 8)) -z ${FUZZ_ARGS}" >> $seqres.full
loff="$((loff + 1))"
done
+1 -1
View File
@@ -64,7 +64,7 @@ INO=`ls -i $SCRATCH_MNT/512 | awk '{print $1}'`
_scratch_unmount
# Figure out where that middle inode starts
BYTE=`$XFS_DB_PROG -c "convert inode $INO byte" $SCRATCH_DEV \
BYTE=`_scratch_xfs_db -c "convert inode $INO byte" \
| awk '{print $2}' | sed s/[\(\)]//g`
echo Blat inode clusters

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