4 # Exercise the XFS nosymlinks inode flag
6 #-----------------------------------------------------------------------
7 # Copyright (c) 2000-2005 Silicon Graphics, Inc. All Rights Reserved.
8 #-----------------------------------------------------------------------
14 echo "QA output created by $seq"
18 status=1 # failure is the default!
19 trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
21 # get standard environment, filters and checks
28 if ! _scratch_mkfs_xfs >$tmp.out 2>&1
31 echo "failed to mkfs $SCRATCH_DEV"
36 if ! _scratch_mount 2>/dev/null
38 echo "failed to mount $SCRATCH_DEV"
45 sed -e "s,$SCRATCH_MNT,SCRATCH_MNT,g"
50 sed -e "s,SCRATCH_MNT/nosymlink/target - Operation not permitted,ln: creating symbolic link \`SCRATCH_MNT/nosymlink/target\' to \`SCRATCH_MNT/nosymlink/source\': Operation not permitted,g" \
51 -e "/SCRATCH_MNT.*to.*SCRATCH_MNT/! s,: Operation not permitted, to \`SCRATCH_MNT/nosymlink/source\': Operation not permitted,g"
54 _filter_noymlinks_flag()
56 _test_inode_flag nosymlinks $SCRATCH_MNT/nosymlink
58 echo "--n-- SCRATCH_MNT/nosymlink"
60 echo "----- SCRATCH_MNT/nosymlink"
64 # real QA test starts here
65 _supported_os Linux IRIX
67 _require_command /usr/sbin/xfs_io
73 echo "*** testing nosymlinks directories"
74 mkdir $SCRATCH_MNT/nosymlink
75 echo "*** setting nosymlinks bit"
76 $XFS_IO_PROG -r -c 'chattr +n' $SCRATCH_MNT/nosymlink
77 _filter_noymlinks_flag
79 touch $SCRATCH_MNT/nosymlink/source
80 ln -s $SCRATCH_MNT/nosymlink/source $SCRATCH_MNT/nosymlink/target 2>&1 \
81 | _filter_scratch | _filter_ln
82 ln $SCRATCH_MNT/nosymlink/source $SCRATCH_MNT/nosymlink/hardlinksareok
84 echo "*** 1st listing..."
85 find $SCRATCH_MNT | _filter_scratch
87 echo "*** clearing nosymlinks bit"
88 $XFS_IO_PROG -r -c 'chattr -n' $SCRATCH_MNT/nosymlink
89 _filter_noymlinks_flag
91 ln -s $SCRATCH_MNT/nosymlink/source $SCRATCH_MNT/nosymlink/target
92 ln $SCRATCH_MNT/nosymlink/source $SCRATCH_MNT/nosymlink/hardlinksareok2
94 echo "*** 2nd listing..."
95 find $SCRATCH_MNT | _filter_scratch
97 echo "*** finished testing nosymlinks directories"