2 # SPDX-License-Identifier: GPL-2.0
3 # Copyright (c) 2000-2005 Silicon Graphics, Inc. All Rights Reserved.
7 # Exercise the XFS nosymlinks inode flag
10 _begin_fstest metadata dir ioctl auto quick
12 # Import common functions.
18 if ! _scratch_mkfs_xfs >$tmp.out 2>&1
21 echo "failed to mkfs $SCRATCH_DEV"
26 if ! _try_scratch_mount 2>/dev/null
28 echo "failed to mount $SCRATCH_DEV"
33 _filter_noymlinks_flag()
35 _test_inode_flag nosymlinks $SCRATCH_MNT/nosymlink
37 echo "--n-- SCRATCH_MNT/nosymlink"
39 echo "----- SCRATCH_MNT/nosymlink"
43 # real QA test starts here
49 echo "*** testing nosymlinks directories"
50 mkdir $SCRATCH_MNT/nosymlink
51 echo "*** setting nosymlinks bit"
52 $XFS_IO_PROG -r -c 'chattr +n' $SCRATCH_MNT/nosymlink
53 _filter_noymlinks_flag
55 touch $SCRATCH_MNT/nosymlink/source
56 ln -s $SCRATCH_MNT/nosymlink/source $SCRATCH_MNT/nosymlink/target 2>&1 \
57 | _filter_scratch | _filter_ln
58 ln $SCRATCH_MNT/nosymlink/source $SCRATCH_MNT/nosymlink/hardlinksareok
60 echo "*** 1st listing..."
61 find $SCRATCH_MNT | _filter_scratch
63 echo "*** clearing nosymlinks bit"
64 $XFS_IO_PROG -r -c 'chattr -n' $SCRATCH_MNT/nosymlink
65 _filter_noymlinks_flag
67 ln -s $SCRATCH_MNT/nosymlink/source $SCRATCH_MNT/nosymlink/target
68 ln $SCRATCH_MNT/nosymlink/source $SCRATCH_MNT/nosymlink/hardlinksareok2
70 echo "*** 2nd listing..."
71 find $SCRATCH_MNT | _filter_scratch
73 echo "*** finished testing nosymlinks directories"