xfs: Fix the situation that mount operation rejects corrupted XFS

On upstream kernel, running some tests which corrupt XFS on purpose
got the mismatched output. e.g. running xfs/087:
------------------------------------------------
 + check fs
 + corrupt image
 + mount image
-+ modify files
-broken: 1
 + repair fs
 + mount image (2)
------------------------------------------------

It is reasonable for corrupted XFS to be caught and rejected by mount
or read/write operation.

Fixes: 0828657542 ("xfs: fix blocktrash fuzzers")
Signed-off-by: Xiao Yang <yangx.jy@cn.fujitsu.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
This commit is contained in:
Xiao Yang
2018-11-20 19:58:28 +08:00
committed by Eryu Guan
parent 7022f85ca7
commit ded188b860
42 changed files with 55 additions and 96 deletions
+1 -2
View File
@@ -71,10 +71,9 @@ _scratch_xfs_db -x -c "inode ${inode}" -c "ablock ${node_lblk}" -c "stack" | gre
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"
echo "+ mount image && modify xattr"
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}"
fi