[prev in list] [next in list] [prev in thread] [next in thread]
List: fstests
Subject: [PATCH v2 3/3] xfs/348: test readlink/readdir with malformed inode mode
From: Amir Goldstein <amir73il () gmail ! com>
Date: 2016-12-25 18:09:36
Message-ID: 1482689376-23553-4-git-send-email-amir73il () gmail ! com
[Download RAW message or body]
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 umount:
XFS: Assertion failed: !rwsem_is_locked(&inode->i_rwsem), file:
/home/amir/build/src/linux/fs/xfs/xfs_super.c, line: 951
To reproduce, need to comment out the variable 'safety'.
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
---
tests/xfs/348 | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/tests/xfs/348 b/tests/xfs/348
index 2a54f9e..cb0e3ea 100755
--- a/tests/xfs/348
+++ b/tests/xfs/348
@@ -132,6 +132,16 @@ 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
+ safety="-d"
+ # NOTE that ls DOES blow up with kernel 4.9 on malformed
+ # directory - remove the safety pin to explode
+ if [ -d $testdir/$file ]; then
+ ls "$safety" $testdir/$file &> /dev/null
+ elif [ -h $testdir/$file ]; then
+ readlink $testdir/$file &> /dev/null
+ fi
fi | _filter_scratch
done
_scratch_unmount
--
2.7.4
--
To unsubscribe from this list: send the line "unsubscribe fstests" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic