mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
xfs: test readlink/readdir with malformed inode mode
In addition to testing xfs_repair on inodes with malformed mode,
and fstat of those inodes on a mounted fs, try to also list content
of mock directory and readlink of mock symlink.
Readdir of mock directory triggers XFS assertion on kernel 4.9 with
XFS_DEBUG=y
XFS: Assertion failed:
rval == 0 || args->dp->i_d.di_size == args->geo->blksize,
file: /home/amir/build/src/linux/fs/xfs/libxfs/xfs_dir2.c, line: 634
A fix patch, as suggested by Darrick, changes this ASSERT() to
return -EFSCORRUPTED ("xfs: sanity check directory inode di_size").
Merging this test should be deferred to after fix patch is merged.
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
This commit is contained in:
committed by
Eryu Guan
parent
707a5890ca
commit
9b80c46ed0
@@ -133,6 +133,15 @@ for dt in $dtypes; do
|
||||
cat $tmp.stat.err
|
||||
else
|
||||
echo "stat: '$testdir/$file' is a $ftype"
|
||||
# Verify that readlink of a file posing as a symlink
|
||||
# and ls of a file posing as a directory does not blow up.
|
||||
# NOTE that ls DOES ASSERT with kernel 4.9 and XFS_DEBUG=y
|
||||
# on malformed directory
|
||||
if [ -d $testdir/$file ]; then
|
||||
ls $testdir/$file &> /dev/null
|
||||
elif [ -h $testdir/$file ]; then
|
||||
readlink $testdir/$file &> /dev/null
|
||||
fi
|
||||
fi | _filter_scratch
|
||||
done
|
||||
_scratch_unmount
|
||||
|
||||
Reference in New Issue
Block a user