Re: [PATCH v3 3/3] xfs: test readlink/readdir with malformed inode mode

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]



On Mon, Jan 9, 2017 at 3:30 PM, Amir Goldstein <amir73il@xxxxxxxxx> wrote:
> 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@xxxxxxxxx>
> ---
>  tests/xfs/348 | 9 +++++++++
>  1 file changed, 9 insertions(+)
>
> diff --git a/tests/xfs/348 b/tests/xfs/348
> index 30825a4..20d5d7e 100755
> --- a/tests/xfs/348
> +++ b/tests/xfs/348
> @@ -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 "$safety" $testdir/$file &> /dev/null

leftover: "$safety"

> +                       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@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux