From: Tim Shimmin Date: Tue, 15 Nov 2005 14:06:40 +0000 (+0000) Subject: update 114 for new getparents interface and xfs_io parent command. X-Git-Tag: v1.1.0~678 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=021e041f6d8faf7e0438d826ca815a030d24da0c;p=xfstests-dev.git update 114 for new getparents interface and xfs_io parent command. Merge of master-melb:xfs-cmds:24430a by kenmcd. update 114 for new getparents interface and xfs_io parent command. --- diff --git a/114 b/114 index 9b713d3c..b5c7da32 100755 --- a/114 +++ b/114 @@ -24,45 +24,25 @@ _cleanup() rm -f $tmp.* } -# Example output: -# -# ~/attr -Fl a/b/c/d/foo -# Attribute "0000000000180080 0000000000000001" has a 3 byte value for a/b/c/d/foo -# -# ~/attr -Fg "0000000000180080 0000000000000001" a/b/c/d/foo -# Attribute "0000000000180080 0000000000000001" had a 3 byte value for a/b/c/d/foo: -# foo -# -# ~/attr -Pg "0000000000180080 0000000000000001" a/b/c/d/foo -# Attribute "0000000000180080 0000000000000001" had a 12 byte value for a/b/c/d/foo: -# /a/b/c/d/foo -# +_check_paths() +{ + _path=$1 # might want to only check this path + + echo "" + echo "Check parent" + if ! xfs_io -x -c 'parent -c' $SCRATCH_MNT | _filter_num; then + exit 1 + fi +} _print_names() { - typeset path - path=$1 - echo "" - echo "Print out hardlink names for given path, $path" + echo "Print out hardlink names for given path, $1" echo "" - # get out the ea name - attr -Fl $path | tee $tmp.attr1 - cat $tmp.attr1 |\ - sed -e 's/"//g' |\ - nawk >$tmp.attr2 '/^Attribute/ { print $2, $3; next }' - - while read ino cnt; do - eaname="$ino $cnt" - - # use the ea name to get the filename value - attr -Fg "$eaname" $path - - # use the ea name to get the pathname value - attr -Pg "$eaname" $path - done < $tmp.attr2 + xfs_io -x -c parent $1 | awk '/p_ino.*=/ {$3 = "inodeXXX"; print; next} {print}' } _test_create() @@ -86,89 +66,10 @@ _test_create() p=dir2/dir3/dir4/file4 touch $p - _print_names $p >>$here/$seq.full - - _check_parentinos_path $SCRATCH_MNT $SCRATCH_MNT/$p -} - -_get_ea_fields() -{ - # get out the ea name components for all the hardlinks - attr -Fl $1 |\ - tee -a $here/$seq.full |\ - sed -e 's/"//g' |\ - nawk '/^Attribute/ { print $2, $3; next }' -} - -_parent_path() -{ - # given: abc/def/ghi/jkl - # want: abc/def/ghi - child=$1 - parent=`echo $child | sed -e 's#/[^/]*$##'` - - # issue of path starting with '/' or not - # relatives paths wouldn't and we need to handle this - if [ $child = $parent ]; then - echo "" - else - echo $parent - fi -} + #_print_names $p >>$here/$seq.full + _print_names $p | tee -a $here/$seq.full -# -# Go thru each component of the hierarchy and compare -# inode# from "stat -i" with the ino from the parent EA name -# -# So I need to be given a path and go thru compenent by component. -# e.g. a/b/c/d/e -# Need to look at: a a/b a/b/c a/b/c/d -# -# Also need to do this for all the hardlinks -# -_check_parentinos_path() -{ - mntpt=$1 - path=$2 - parent="$path" - - # representing all the hard links for a particular path - - _get_ea_fields $path |\ - while read parent_ino cnt; do - - while [ "$parent" != "$mntpt" ]; do - # compare paths - eaname="$parent_ino $cnt" - eavalue=`attr -qPg "$eaname" $parent` - parentrel=`echo $parent | sed -e "s#^$mntpt##"` - if [ "$eavalue" = "$parentrel" ]; then - echo "EA path $eavalue matches on path" - else - $verbose && echo "EA path mismatch on $parentrel: $eavalue" - break # maybe wrong hardlink - fi - - # compare parent_ino from ea-name with parent-ino from - # actual parent dir using stat - - parent=`_parent_path $parent` - parent_ino_dec=`printf "%d" 0x$parent_ino` # decimal version (not hex) - stat_ino=`stat -iq $parent` - - if [ "$parent_ino_dec" = "$stat_ino" ]; then - echo "parent ino $parent_ino_dec matches" - else - echo "parent ino mismatch on $parent: EA=$parent_ino_dec stat=$stat_ino" - fi - - - # go onto next subdir up the path - line=`_get_ea_fields $parent` - parent_ino=`echo $line | cut -f1 -d' '` # 1st field - cnt=`echo $line | cut -f2 -d' '` # 2nd field - done - done + _check_paths $SCRATCH_MNT/$p } _test_symlink() @@ -185,10 +86,10 @@ _test_symlink() ln symlink1 hlink1 ln symlink1 hlink2 ln symlink1 hlink3 - _check_parentinos_path $SCRATCH_MNT $SCRATCH_MNT/symlink1 - _check_parentinos_path $SCRATCH_MNT $SCRATCH_MNT/hlink1 - _check_parentinos_path $SCRATCH_MNT $SCRATCH_MNT/hlink2 - _check_parentinos_path $SCRATCH_MNT $SCRATCH_MNT/hlink3 + _check_paths $SCRATCH_MNT/symlink1 + _check_paths $SCRATCH_MNT/hlink1 + _check_paths $SCRATCH_MNT/hlink2 + _check_paths $SCRATCH_MNT/hlink3 } # @@ -223,9 +124,10 @@ _test_hardlink() echo "" for x in $paths; do _print_names $x | tee -a $here/$seq.full - _check_parentinos_path $SCRATCH_MNT $SCRATCH_MNT/$x + _check_paths $SCRATCH_MNT/$x done + echo "" echo "now try removing half of the hardlinks" echo "" @@ -245,9 +147,8 @@ _test_hardlink() echo "" for x in $paths; do if [ -e $x ]; then -echo "looking at $x" _print_names $x | tee -a $here/$seq.full - _check_parentinos_path $SCRATCH_MNT $SCRATCH_MNT/$x + _check_paths $SCRATCH_MNT/$x fi done @@ -277,14 +178,14 @@ _test_rename() p2=$d1/f2 touch $p1 mv $p1 $p2 - _check_parentinos_path $SCRATCH_MNT $p2 + _check_paths $p2 echo "" echo "2. in dir, file1 to file2 where file2 does exist" echo "" touch $p1 mv $p1 $p2 - _check_parentinos_path $SCRATCH_MNT $p2 + _check_paths $p2 echo "" echo "3. dir/file1 to dir2/file2 where file2 does not exist" @@ -294,7 +195,7 @@ _test_rename() p3=$d2/f3 touch $p1 mv $p1 $p3 - _check_parentinos_path $SCRATCH_MNT $p3 + _check_paths $p3 echo "" echo "4. dir/file1 to dir2/file2 where file2 does exist" @@ -303,19 +204,19 @@ _test_rename() p3=$d2/f3 touch $p1 mv $p1 $p3 - _check_parentinos_path $SCRATCH_MNT $p3 + _check_paths $p3 echo "" echo "5. dir to dir2 where dir2 does not exist" echo "" d3=$SCRATCH_MNT/ren1/ren2/ren3/ren6 mv $d1 $d3 - _check_parentinos_path $SCRATCH_MNT $d3 + _check_paths $d3 } _filter_num() { - tee -a $seq.full |\ + tee -a $here/$seq.full |\ sed -e 's/[0-9][0-9]* inodes/I inodes/g' \ -e 's/[0-9][0-9]* paths/P paths/g' \ -e 's/seed = [0-9][0-9]*/seed = S/' @@ -344,8 +245,7 @@ _test_fsstress() status=1 fi - xfs_repair_ipaths -n $SCRATCH_MNT | _filter_num - xfs_check_ipaths $SCRATCH_MNT | _filter_num + _check_paths } @@ -387,8 +287,7 @@ _test_dirstress() exit fi - xfs_repair_ipaths -n $SCRATCH_MNT | _filter_num - xfs_check_ipaths $SCRATCH_MNT | _filter_num + _check_paths } # get standard environment, filters and checks @@ -399,15 +298,16 @@ _supported_fs xfs _supported_os IRIX _require_scratch +_need_to_be_root rm -f $here/$seq.full echo "mkfs" _scratch_mkfs_xfs >>$here/$seq.full 2>&1 \ || _fail "mkfs scratch failed" -export MKFS_OPTIONS="$MKFS_OPTIONS -i paths=1" +export MKFS_OPTIONS="$MKFS_OPTIONS -i parent=1" _scratch_mkfs_xfs >>$here/$seq.full 2>&1 \ - || _notrun "i_paths not supported" + || _notrun "parent inodes not supported" echo "mount" _scratch_mount >>$here/$seq.full 2>&1 \ @@ -417,8 +317,6 @@ _scratch_mount >>$here/$seq.full 2>&1 \ verbose=false -# initial testing with scripting and modified attr(1) -# in order to test parent EAs _test_create _test_hardlink _test_rename diff --git a/114.out b/114.out index f71596a3..2549cf28 100644 --- a/114.out +++ b/114.out @@ -4,14 +4,16 @@ mount Testing create -EA path /dir2/dir3/dir4/file4 matches on path -parent ino 1048704 matches -EA path /dir2/dir3/dir4 matches on path -parent ino 524416 matches -EA path /dir2/dir3 matches on path -parent ino 132 matches -EA path /dir2 matches on path -parent ino 128 matches + +Print out hardlink names for given path, dir2/dir3/dir4/file4 + +p_ino = inodeXXX +p_gen = 2 +p_reclen = 24 +p_name = "file4" + +Check parent +succeeded checking I inodes Testing hardlink @@ -21,279 +23,207 @@ print out names and check after created hardlinks Print out hardlink names for given path, dir2/dir3/dir4/l1 -Attribute "0000000000100080 0000000000000002" has a 2 byte value for dir2/dir3/dir4/l1 -Attribute "0000000000100080 0000000000000003" has a 2 byte value for dir2/dir3/dir4/l1 -Attribute "0000000000100080 0000000000000001" has a 5 byte value for dir2/dir3/dir4/l1 -Attribute "0000000000100080 0000000000000004" has a 2 byte value for dir2/dir3/dir4/l1 -Attribute "0000000000204b80 0000000000000006" has a 2 byte value for dir2/dir3/dir4/l1 -Attribute "0000000000204b80 0000000000000007" has a 2 byte value for dir2/dir3/dir4/l1 -Attribute "0000000000204b80 0000000000000005" has a 2 byte value for dir2/dir3/dir4/l1 -Attribute "0000000000100080 0000000000000002" had a 2 byte value for dir2/dir3/dir4/l1: -l1 -Attribute "0000000000100080 0000000000000002" had a 18 byte value for dir2/dir3/dir4/l1: -/dir2/dir3/dir4/l1 -Attribute "0000000000100080 0000000000000003" had a 2 byte value for dir2/dir3/dir4/l1: -l2 -Attribute "0000000000100080 0000000000000003" had a 18 byte value for dir2/dir3/dir4/l1: -/dir2/dir3/dir4/l2 -Attribute "0000000000100080 0000000000000001" had a 5 byte value for dir2/dir3/dir4/l1: -file4 -Attribute "0000000000100080 0000000000000001" had a 21 byte value for dir2/dir3/dir4/l1: -/dir2/dir3/dir4/file4 -Attribute "0000000000100080 0000000000000004" had a 2 byte value for dir2/dir3/dir4/l1: -l3 -Attribute "0000000000100080 0000000000000004" had a 18 byte value for dir2/dir3/dir4/l1: -/dir2/dir3/dir4/l3 -Attribute "0000000000204b80 0000000000000006" had a 2 byte value for dir2/dir3/dir4/l1: -l5 -Attribute "0000000000204b80 0000000000000006" had a 18 byte value for dir2/dir3/dir4/l1: -/dir2/dir5/dir6/l5 -Attribute "0000000000204b80 0000000000000007" had a 2 byte value for dir2/dir3/dir4/l1: -l6 -Attribute "0000000000204b80 0000000000000007" had a 18 byte value for dir2/dir3/dir4/l1: -/dir2/dir5/dir6/l6 -Attribute "0000000000204b80 0000000000000005" had a 2 byte value for dir2/dir3/dir4/l1: -l4 -Attribute "0000000000204b80 0000000000000005" had a 18 byte value for dir2/dir3/dir4/l1: -/dir2/dir5/dir6/l4 -EA path /dir2/dir3/dir4/l1 matches on path -parent ino 1048704 matches -EA path /dir2/dir3/dir4 matches on path -parent ino 524416 matches -EA path /dir2/dir3 matches on path -parent ino 132 matches -EA path /dir2 matches on path -parent ino 128 matches +p_ino = inodeXXX +p_gen = 4 +p_reclen = 24 +p_name = "l4" +p_ino = inodeXXX +p_gen = 4 +p_reclen = 24 +p_name = "l6" +p_ino = inodeXXX +p_gen = 4 +p_reclen = 24 +p_name = "l5" +p_ino = inodeXXX +p_gen = 5 +p_reclen = 24 +p_name = "file4" +p_ino = inodeXXX +p_gen = 5 +p_reclen = 24 +p_name = "l1" +p_ino = inodeXXX +p_gen = 5 +p_reclen = 24 +p_name = "l2" +p_ino = inodeXXX +p_gen = 5 +p_reclen = 24 +p_name = "l3" + +Check parent +succeeded checking I inodes Print out hardlink names for given path, dir2/dir3/dir4/l2 -Attribute "0000000000100080 0000000000000002" has a 2 byte value for dir2/dir3/dir4/l2 -Attribute "0000000000100080 0000000000000003" has a 2 byte value for dir2/dir3/dir4/l2 -Attribute "0000000000100080 0000000000000001" has a 5 byte value for dir2/dir3/dir4/l2 -Attribute "0000000000100080 0000000000000004" has a 2 byte value for dir2/dir3/dir4/l2 -Attribute "0000000000204b80 0000000000000006" has a 2 byte value for dir2/dir3/dir4/l2 -Attribute "0000000000204b80 0000000000000007" has a 2 byte value for dir2/dir3/dir4/l2 -Attribute "0000000000204b80 0000000000000005" has a 2 byte value for dir2/dir3/dir4/l2 -Attribute "0000000000100080 0000000000000002" had a 2 byte value for dir2/dir3/dir4/l2: -l1 -Attribute "0000000000100080 0000000000000002" had a 18 byte value for dir2/dir3/dir4/l2: -/dir2/dir3/dir4/l1 -Attribute "0000000000100080 0000000000000003" had a 2 byte value for dir2/dir3/dir4/l2: -l2 -Attribute "0000000000100080 0000000000000003" had a 18 byte value for dir2/dir3/dir4/l2: -/dir2/dir3/dir4/l2 -Attribute "0000000000100080 0000000000000001" had a 5 byte value for dir2/dir3/dir4/l2: -file4 -Attribute "0000000000100080 0000000000000001" had a 21 byte value for dir2/dir3/dir4/l2: -/dir2/dir3/dir4/file4 -Attribute "0000000000100080 0000000000000004" had a 2 byte value for dir2/dir3/dir4/l2: -l3 -Attribute "0000000000100080 0000000000000004" had a 18 byte value for dir2/dir3/dir4/l2: -/dir2/dir3/dir4/l3 -Attribute "0000000000204b80 0000000000000006" had a 2 byte value for dir2/dir3/dir4/l2: -l5 -Attribute "0000000000204b80 0000000000000006" had a 18 byte value for dir2/dir3/dir4/l2: -/dir2/dir5/dir6/l5 -Attribute "0000000000204b80 0000000000000007" had a 2 byte value for dir2/dir3/dir4/l2: -l6 -Attribute "0000000000204b80 0000000000000007" had a 18 byte value for dir2/dir3/dir4/l2: -/dir2/dir5/dir6/l6 -Attribute "0000000000204b80 0000000000000005" had a 2 byte value for dir2/dir3/dir4/l2: -l4 -Attribute "0000000000204b80 0000000000000005" had a 18 byte value for dir2/dir3/dir4/l2: -/dir2/dir5/dir6/l4 -EA path /dir2/dir3/dir4/l2 matches on path -parent ino 1048704 matches -EA path /dir2/dir3/dir4 matches on path -parent ino 524416 matches -EA path /dir2/dir3 matches on path -parent ino 132 matches -EA path /dir2 matches on path -parent ino 128 matches +p_ino = inodeXXX +p_gen = 4 +p_reclen = 24 +p_name = "l4" +p_ino = inodeXXX +p_gen = 4 +p_reclen = 24 +p_name = "l6" +p_ino = inodeXXX +p_gen = 4 +p_reclen = 24 +p_name = "l5" +p_ino = inodeXXX +p_gen = 5 +p_reclen = 24 +p_name = "file4" +p_ino = inodeXXX +p_gen = 5 +p_reclen = 24 +p_name = "l1" +p_ino = inodeXXX +p_gen = 5 +p_reclen = 24 +p_name = "l2" +p_ino = inodeXXX +p_gen = 5 +p_reclen = 24 +p_name = "l3" + +Check parent +succeeded checking I inodes Print out hardlink names for given path, dir2/dir3/dir4/l3 -Attribute "0000000000100080 0000000000000002" has a 2 byte value for dir2/dir3/dir4/l3 -Attribute "0000000000100080 0000000000000003" has a 2 byte value for dir2/dir3/dir4/l3 -Attribute "0000000000100080 0000000000000001" has a 5 byte value for dir2/dir3/dir4/l3 -Attribute "0000000000100080 0000000000000004" has a 2 byte value for dir2/dir3/dir4/l3 -Attribute "0000000000204b80 0000000000000006" has a 2 byte value for dir2/dir3/dir4/l3 -Attribute "0000000000204b80 0000000000000007" has a 2 byte value for dir2/dir3/dir4/l3 -Attribute "0000000000204b80 0000000000000005" has a 2 byte value for dir2/dir3/dir4/l3 -Attribute "0000000000100080 0000000000000002" had a 2 byte value for dir2/dir3/dir4/l3: -l1 -Attribute "0000000000100080 0000000000000002" had a 18 byte value for dir2/dir3/dir4/l3: -/dir2/dir3/dir4/l1 -Attribute "0000000000100080 0000000000000003" had a 2 byte value for dir2/dir3/dir4/l3: -l2 -Attribute "0000000000100080 0000000000000003" had a 18 byte value for dir2/dir3/dir4/l3: -/dir2/dir3/dir4/l2 -Attribute "0000000000100080 0000000000000001" had a 5 byte value for dir2/dir3/dir4/l3: -file4 -Attribute "0000000000100080 0000000000000001" had a 21 byte value for dir2/dir3/dir4/l3: -/dir2/dir3/dir4/file4 -Attribute "0000000000100080 0000000000000004" had a 2 byte value for dir2/dir3/dir4/l3: -l3 -Attribute "0000000000100080 0000000000000004" had a 18 byte value for dir2/dir3/dir4/l3: -/dir2/dir3/dir4/l3 -Attribute "0000000000204b80 0000000000000006" had a 2 byte value for dir2/dir3/dir4/l3: -l5 -Attribute "0000000000204b80 0000000000000006" had a 18 byte value for dir2/dir3/dir4/l3: -/dir2/dir5/dir6/l5 -Attribute "0000000000204b80 0000000000000007" had a 2 byte value for dir2/dir3/dir4/l3: -l6 -Attribute "0000000000204b80 0000000000000007" had a 18 byte value for dir2/dir3/dir4/l3: -/dir2/dir5/dir6/l6 -Attribute "0000000000204b80 0000000000000005" had a 2 byte value for dir2/dir3/dir4/l3: -l4 -Attribute "0000000000204b80 0000000000000005" had a 18 byte value for dir2/dir3/dir4/l3: -/dir2/dir5/dir6/l4 -EA path /dir2/dir3/dir4/l3 matches on path -parent ino 1048704 matches -EA path /dir2/dir3/dir4 matches on path -parent ino 524416 matches -EA path /dir2/dir3 matches on path -parent ino 132 matches -EA path /dir2 matches on path -parent ino 128 matches +p_ino = inodeXXX +p_gen = 4 +p_reclen = 24 +p_name = "l4" +p_ino = inodeXXX +p_gen = 4 +p_reclen = 24 +p_name = "l6" +p_ino = inodeXXX +p_gen = 4 +p_reclen = 24 +p_name = "l5" +p_ino = inodeXXX +p_gen = 5 +p_reclen = 24 +p_name = "file4" +p_ino = inodeXXX +p_gen = 5 +p_reclen = 24 +p_name = "l1" +p_ino = inodeXXX +p_gen = 5 +p_reclen = 24 +p_name = "l2" +p_ino = inodeXXX +p_gen = 5 +p_reclen = 24 +p_name = "l3" + +Check parent +succeeded checking I inodes Print out hardlink names for given path, dir2/dir5/dir6/l4 -Attribute "0000000000100080 0000000000000002" has a 2 byte value for dir2/dir5/dir6/l4 -Attribute "0000000000100080 0000000000000003" has a 2 byte value for dir2/dir5/dir6/l4 -Attribute "0000000000100080 0000000000000001" has a 5 byte value for dir2/dir5/dir6/l4 -Attribute "0000000000100080 0000000000000004" has a 2 byte value for dir2/dir5/dir6/l4 -Attribute "0000000000204b80 0000000000000006" has a 2 byte value for dir2/dir5/dir6/l4 -Attribute "0000000000204b80 0000000000000007" has a 2 byte value for dir2/dir5/dir6/l4 -Attribute "0000000000204b80 0000000000000005" has a 2 byte value for dir2/dir5/dir6/l4 -Attribute "0000000000100080 0000000000000002" had a 2 byte value for dir2/dir5/dir6/l4: -l1 -Attribute "0000000000100080 0000000000000002" had a 18 byte value for dir2/dir5/dir6/l4: -/dir2/dir3/dir4/l1 -Attribute "0000000000100080 0000000000000003" had a 2 byte value for dir2/dir5/dir6/l4: -l2 -Attribute "0000000000100080 0000000000000003" had a 18 byte value for dir2/dir5/dir6/l4: -/dir2/dir3/dir4/l2 -Attribute "0000000000100080 0000000000000001" had a 5 byte value for dir2/dir5/dir6/l4: -file4 -Attribute "0000000000100080 0000000000000001" had a 21 byte value for dir2/dir5/dir6/l4: -/dir2/dir3/dir4/file4 -Attribute "0000000000100080 0000000000000004" had a 2 byte value for dir2/dir5/dir6/l4: -l3 -Attribute "0000000000100080 0000000000000004" had a 18 byte value for dir2/dir5/dir6/l4: -/dir2/dir3/dir4/l3 -Attribute "0000000000204b80 0000000000000006" had a 2 byte value for dir2/dir5/dir6/l4: -l5 -Attribute "0000000000204b80 0000000000000006" had a 18 byte value for dir2/dir5/dir6/l4: -/dir2/dir5/dir6/l5 -Attribute "0000000000204b80 0000000000000007" had a 2 byte value for dir2/dir5/dir6/l4: -l6 -Attribute "0000000000204b80 0000000000000007" had a 18 byte value for dir2/dir5/dir6/l4: -/dir2/dir5/dir6/l6 -Attribute "0000000000204b80 0000000000000005" had a 2 byte value for dir2/dir5/dir6/l4: -l4 -Attribute "0000000000204b80 0000000000000005" had a 18 byte value for dir2/dir5/dir6/l4: -/dir2/dir5/dir6/l4 -EA path /dir2/dir5/dir6/l4 matches on path -parent ino 2116480 matches -EA path /dir2/dir5/dir6 matches on path -parent ino 1572992 matches -EA path /dir2/dir5 matches on path -parent ino 132 matches -EA path /dir2 matches on path -parent ino 128 matches +p_ino = inodeXXX +p_gen = 4 +p_reclen = 24 +p_name = "l4" +p_ino = inodeXXX +p_gen = 4 +p_reclen = 24 +p_name = "l6" +p_ino = inodeXXX +p_gen = 4 +p_reclen = 24 +p_name = "l5" +p_ino = inodeXXX +p_gen = 5 +p_reclen = 24 +p_name = "file4" +p_ino = inodeXXX +p_gen = 5 +p_reclen = 24 +p_name = "l1" +p_ino = inodeXXX +p_gen = 5 +p_reclen = 24 +p_name = "l2" +p_ino = inodeXXX +p_gen = 5 +p_reclen = 24 +p_name = "l3" + +Check parent +succeeded checking I inodes Print out hardlink names for given path, dir2/dir5/dir6/l5 -Attribute "0000000000100080 0000000000000002" has a 2 byte value for dir2/dir5/dir6/l5 -Attribute "0000000000100080 0000000000000003" has a 2 byte value for dir2/dir5/dir6/l5 -Attribute "0000000000100080 0000000000000001" has a 5 byte value for dir2/dir5/dir6/l5 -Attribute "0000000000100080 0000000000000004" has a 2 byte value for dir2/dir5/dir6/l5 -Attribute "0000000000204b80 0000000000000006" has a 2 byte value for dir2/dir5/dir6/l5 -Attribute "0000000000204b80 0000000000000007" has a 2 byte value for dir2/dir5/dir6/l5 -Attribute "0000000000204b80 0000000000000005" has a 2 byte value for dir2/dir5/dir6/l5 -Attribute "0000000000100080 0000000000000002" had a 2 byte value for dir2/dir5/dir6/l5: -l1 -Attribute "0000000000100080 0000000000000002" had a 18 byte value for dir2/dir5/dir6/l5: -/dir2/dir3/dir4/l1 -Attribute "0000000000100080 0000000000000003" had a 2 byte value for dir2/dir5/dir6/l5: -l2 -Attribute "0000000000100080 0000000000000003" had a 18 byte value for dir2/dir5/dir6/l5: -/dir2/dir3/dir4/l2 -Attribute "0000000000100080 0000000000000001" had a 5 byte value for dir2/dir5/dir6/l5: -file4 -Attribute "0000000000100080 0000000000000001" had a 21 byte value for dir2/dir5/dir6/l5: -/dir2/dir3/dir4/file4 -Attribute "0000000000100080 0000000000000004" had a 2 byte value for dir2/dir5/dir6/l5: -l3 -Attribute "0000000000100080 0000000000000004" had a 18 byte value for dir2/dir5/dir6/l5: -/dir2/dir3/dir4/l3 -Attribute "0000000000204b80 0000000000000006" had a 2 byte value for dir2/dir5/dir6/l5: -l5 -Attribute "0000000000204b80 0000000000000006" had a 18 byte value for dir2/dir5/dir6/l5: -/dir2/dir5/dir6/l5 -Attribute "0000000000204b80 0000000000000007" had a 2 byte value for dir2/dir5/dir6/l5: -l6 -Attribute "0000000000204b80 0000000000000007" had a 18 byte value for dir2/dir5/dir6/l5: -/dir2/dir5/dir6/l6 -Attribute "0000000000204b80 0000000000000005" had a 2 byte value for dir2/dir5/dir6/l5: -l4 -Attribute "0000000000204b80 0000000000000005" had a 18 byte value for dir2/dir5/dir6/l5: -/dir2/dir5/dir6/l4 -EA path /dir2/dir5/dir6/l5 matches on path -parent ino 2116480 matches -EA path /dir2/dir5/dir6 matches on path -parent ino 1572992 matches -EA path /dir2/dir5 matches on path -parent ino 132 matches -EA path /dir2 matches on path -parent ino 128 matches +p_ino = inodeXXX +p_gen = 4 +p_reclen = 24 +p_name = "l4" +p_ino = inodeXXX +p_gen = 4 +p_reclen = 24 +p_name = "l6" +p_ino = inodeXXX +p_gen = 4 +p_reclen = 24 +p_name = "l5" +p_ino = inodeXXX +p_gen = 5 +p_reclen = 24 +p_name = "file4" +p_ino = inodeXXX +p_gen = 5 +p_reclen = 24 +p_name = "l1" +p_ino = inodeXXX +p_gen = 5 +p_reclen = 24 +p_name = "l2" +p_ino = inodeXXX +p_gen = 5 +p_reclen = 24 +p_name = "l3" + +Check parent +succeeded checking I inodes Print out hardlink names for given path, dir2/dir5/dir6/l6 -Attribute "0000000000100080 0000000000000002" has a 2 byte value for dir2/dir5/dir6/l6 -Attribute "0000000000100080 0000000000000003" has a 2 byte value for dir2/dir5/dir6/l6 -Attribute "0000000000100080 0000000000000001" has a 5 byte value for dir2/dir5/dir6/l6 -Attribute "0000000000100080 0000000000000004" has a 2 byte value for dir2/dir5/dir6/l6 -Attribute "0000000000204b80 0000000000000006" has a 2 byte value for dir2/dir5/dir6/l6 -Attribute "0000000000204b80 0000000000000007" has a 2 byte value for dir2/dir5/dir6/l6 -Attribute "0000000000204b80 0000000000000005" has a 2 byte value for dir2/dir5/dir6/l6 -Attribute "0000000000100080 0000000000000002" had a 2 byte value for dir2/dir5/dir6/l6: -l1 -Attribute "0000000000100080 0000000000000002" had a 18 byte value for dir2/dir5/dir6/l6: -/dir2/dir3/dir4/l1 -Attribute "0000000000100080 0000000000000003" had a 2 byte value for dir2/dir5/dir6/l6: -l2 -Attribute "0000000000100080 0000000000000003" had a 18 byte value for dir2/dir5/dir6/l6: -/dir2/dir3/dir4/l2 -Attribute "0000000000100080 0000000000000001" had a 5 byte value for dir2/dir5/dir6/l6: -file4 -Attribute "0000000000100080 0000000000000001" had a 21 byte value for dir2/dir5/dir6/l6: -/dir2/dir3/dir4/file4 -Attribute "0000000000100080 0000000000000004" had a 2 byte value for dir2/dir5/dir6/l6: -l3 -Attribute "0000000000100080 0000000000000004" had a 18 byte value for dir2/dir5/dir6/l6: -/dir2/dir3/dir4/l3 -Attribute "0000000000204b80 0000000000000006" had a 2 byte value for dir2/dir5/dir6/l6: -l5 -Attribute "0000000000204b80 0000000000000006" had a 18 byte value for dir2/dir5/dir6/l6: -/dir2/dir5/dir6/l5 -Attribute "0000000000204b80 0000000000000007" had a 2 byte value for dir2/dir5/dir6/l6: -l6 -Attribute "0000000000204b80 0000000000000007" had a 18 byte value for dir2/dir5/dir6/l6: -/dir2/dir5/dir6/l6 -Attribute "0000000000204b80 0000000000000005" had a 2 byte value for dir2/dir5/dir6/l6: -l4 -Attribute "0000000000204b80 0000000000000005" had a 18 byte value for dir2/dir5/dir6/l6: -/dir2/dir5/dir6/l4 -EA path /dir2/dir5/dir6/l6 matches on path -parent ino 2116480 matches -EA path /dir2/dir5/dir6 matches on path -parent ino 1572992 matches -EA path /dir2/dir5 matches on path -parent ino 132 matches -EA path /dir2 matches on path -parent ino 128 matches +p_ino = inodeXXX +p_gen = 4 +p_reclen = 24 +p_name = "l4" +p_ino = inodeXXX +p_gen = 4 +p_reclen = 24 +p_name = "l6" +p_ino = inodeXXX +p_gen = 4 +p_reclen = 24 +p_name = "l5" +p_ino = inodeXXX +p_gen = 5 +p_reclen = 24 +p_name = "file4" +p_ino = inodeXXX +p_gen = 5 +p_reclen = 24 +p_name = "l1" +p_ino = inodeXXX +p_gen = 5 +p_reclen = 24 +p_name = "l2" +p_ino = inodeXXX +p_gen = 5 +p_reclen = 24 +p_name = "l3" + +Check parent +succeeded checking I inodes now try removing half of the hardlinks @@ -303,190 +233,133 @@ rm'ing dir2/dir5/dir6/l6 print out names and check after removed hardlinks -looking at dir2/dir3/dir4/l1 Print out hardlink names for given path, dir2/dir3/dir4/l1 -Attribute "0000000000100080 0000000000000002" has a 2 byte value for dir2/dir3/dir4/l1 -Attribute "0000000000100080 0000000000000001" has a 5 byte value for dir2/dir3/dir4/l1 -Attribute "0000000000100080 0000000000000004" has a 2 byte value for dir2/dir3/dir4/l1 -Attribute "0000000000204b80 0000000000000006" has a 2 byte value for dir2/dir3/dir4/l1 -Attribute "0000000000100080 0000000000000002" had a 2 byte value for dir2/dir3/dir4/l1: -l1 -Attribute "0000000000100080 0000000000000002" had a 18 byte value for dir2/dir3/dir4/l1: -/dir2/dir3/dir4/l1 -Attribute "0000000000100080 0000000000000001" had a 5 byte value for dir2/dir3/dir4/l1: -file4 -Attribute "0000000000100080 0000000000000001" had a 21 byte value for dir2/dir3/dir4/l1: -/dir2/dir3/dir4/file4 -Attribute "0000000000100080 0000000000000004" had a 2 byte value for dir2/dir3/dir4/l1: -l3 -Attribute "0000000000100080 0000000000000004" had a 18 byte value for dir2/dir3/dir4/l1: -/dir2/dir3/dir4/l3 -Attribute "0000000000204b80 0000000000000006" had a 2 byte value for dir2/dir3/dir4/l1: -l5 -Attribute "0000000000204b80 0000000000000006" had a 18 byte value for dir2/dir3/dir4/l1: -/dir2/dir5/dir6/l5 -EA path /dir2/dir3/dir4/l1 matches on path -parent ino 1048704 matches -EA path /dir2/dir3/dir4 matches on path -parent ino 524416 matches -EA path /dir2/dir3 matches on path -parent ino 132 matches -EA path /dir2 matches on path -parent ino 128 matches -looking at dir2/dir3/dir4/l3 +p_ino = inodeXXX +p_gen = 6 +p_reclen = 24 +p_name = "l5" +p_ino = inodeXXX +p_gen = 6 +p_reclen = 24 +p_name = "file4" +p_ino = inodeXXX +p_gen = 6 +p_reclen = 24 +p_name = "l1" +p_ino = inodeXXX +p_gen = 6 +p_reclen = 24 +p_name = "l3" + +Check parent +succeeded checking I inodes Print out hardlink names for given path, dir2/dir3/dir4/l3 -Attribute "0000000000100080 0000000000000002" has a 2 byte value for dir2/dir3/dir4/l3 -Attribute "0000000000100080 0000000000000001" has a 5 byte value for dir2/dir3/dir4/l3 -Attribute "0000000000100080 0000000000000004" has a 2 byte value for dir2/dir3/dir4/l3 -Attribute "0000000000204b80 0000000000000006" has a 2 byte value for dir2/dir3/dir4/l3 -Attribute "0000000000100080 0000000000000002" had a 2 byte value for dir2/dir3/dir4/l3: -l1 -Attribute "0000000000100080 0000000000000002" had a 18 byte value for dir2/dir3/dir4/l3: -/dir2/dir3/dir4/l1 -Attribute "0000000000100080 0000000000000001" had a 5 byte value for dir2/dir3/dir4/l3: -file4 -Attribute "0000000000100080 0000000000000001" had a 21 byte value for dir2/dir3/dir4/l3: -/dir2/dir3/dir4/file4 -Attribute "0000000000100080 0000000000000004" had a 2 byte value for dir2/dir3/dir4/l3: -l3 -Attribute "0000000000100080 0000000000000004" had a 18 byte value for dir2/dir3/dir4/l3: -/dir2/dir3/dir4/l3 -Attribute "0000000000204b80 0000000000000006" had a 2 byte value for dir2/dir3/dir4/l3: -l5 -Attribute "0000000000204b80 0000000000000006" had a 18 byte value for dir2/dir3/dir4/l3: -/dir2/dir5/dir6/l5 -EA path /dir2/dir3/dir4/l3 matches on path -parent ino 1048704 matches -EA path /dir2/dir3/dir4 matches on path -parent ino 524416 matches -EA path /dir2/dir3 matches on path -parent ino 132 matches -EA path /dir2 matches on path -parent ino 128 matches -looking at dir2/dir5/dir6/l5 +p_ino = inodeXXX +p_gen = 6 +p_reclen = 24 +p_name = "l5" +p_ino = inodeXXX +p_gen = 6 +p_reclen = 24 +p_name = "file4" +p_ino = inodeXXX +p_gen = 6 +p_reclen = 24 +p_name = "l1" +p_ino = inodeXXX +p_gen = 6 +p_reclen = 24 +p_name = "l3" + +Check parent +succeeded checking I inodes Print out hardlink names for given path, dir2/dir5/dir6/l5 -Attribute "0000000000100080 0000000000000002" has a 2 byte value for dir2/dir5/dir6/l5 -Attribute "0000000000100080 0000000000000001" has a 5 byte value for dir2/dir5/dir6/l5 -Attribute "0000000000100080 0000000000000004" has a 2 byte value for dir2/dir5/dir6/l5 -Attribute "0000000000204b80 0000000000000006" has a 2 byte value for dir2/dir5/dir6/l5 -Attribute "0000000000100080 0000000000000002" had a 2 byte value for dir2/dir5/dir6/l5: -l1 -Attribute "0000000000100080 0000000000000002" had a 18 byte value for dir2/dir5/dir6/l5: -/dir2/dir3/dir4/l1 -Attribute "0000000000100080 0000000000000001" had a 5 byte value for dir2/dir5/dir6/l5: -file4 -Attribute "0000000000100080 0000000000000001" had a 21 byte value for dir2/dir5/dir6/l5: -/dir2/dir3/dir4/file4 -Attribute "0000000000100080 0000000000000004" had a 2 byte value for dir2/dir5/dir6/l5: -l3 -Attribute "0000000000100080 0000000000000004" had a 18 byte value for dir2/dir5/dir6/l5: -/dir2/dir3/dir4/l3 -Attribute "0000000000204b80 0000000000000006" had a 2 byte value for dir2/dir5/dir6/l5: -l5 -Attribute "0000000000204b80 0000000000000006" had a 18 byte value for dir2/dir5/dir6/l5: -/dir2/dir5/dir6/l5 -EA path /dir2/dir5/dir6/l5 matches on path -parent ino 2116480 matches -EA path /dir2/dir5/dir6 matches on path -parent ino 1572992 matches -EA path /dir2/dir5 matches on path -parent ino 132 matches -EA path /dir2 matches on path -parent ino 128 matches +p_ino = inodeXXX +p_gen = 6 +p_reclen = 24 +p_name = "l5" +p_ino = inodeXXX +p_gen = 6 +p_reclen = 24 +p_name = "file4" +p_ino = inodeXXX +p_gen = 6 +p_reclen = 24 +p_name = "l1" +p_ino = inodeXXX +p_gen = 6 +p_reclen = 24 +p_name = "l3" + +Check parent +succeeded checking I inodes Testing rename 1. in dir, file1 to file2 where file2 does not exist -EA path /ren1/ren2/ren3/ren4/f2 matches on path -parent ino 134 matches -EA path /ren1/ren2/ren3/ren4 matches on path -parent ino 3670144 matches -EA path /ren1/ren2/ren3 matches on path -parent ino 3145856 matches -EA path /ren1/ren2 matches on path -parent ino 2621568 matches -EA path /ren1 matches on path -parent ino 128 matches + +Check parent +succeeded checking I inodes 2. in dir, file1 to file2 where file2 does exist -EA path /ren1/ren2/ren3/ren4/f2 matches on path -parent ino 134 matches -EA path /ren1/ren2/ren3/ren4 matches on path -parent ino 3670144 matches -EA path /ren1/ren2/ren3 matches on path -parent ino 3145856 matches -EA path /ren1/ren2 matches on path -parent ino 2621568 matches -EA path /ren1 matches on path -parent ino 128 matches + +Check parent +succeeded checking I inodes 3. dir/file1 to dir2/file2 where file2 does not exist -EA path /ren1/ren2/ren3/ren5/f3 matches on path -parent ino 524418 matches -EA path /ren1/ren2/ren3/ren5 matches on path -parent ino 3670144 matches -EA path /ren1/ren2/ren3 matches on path -parent ino 3145856 matches -EA path /ren1/ren2 matches on path -parent ino 2621568 matches -EA path /ren1 matches on path -parent ino 128 matches + +Check parent +succeeded checking I inodes 4. dir/file1 to dir2/file2 where file2 does exist -EA path /ren1/ren2/ren3/ren5/f3 matches on path -parent ino 524418 matches -EA path /ren1/ren2/ren3/ren5 matches on path -parent ino 3670144 matches -EA path /ren1/ren2/ren3 matches on path -parent ino 3145856 matches -EA path /ren1/ren2 matches on path -parent ino 2621568 matches -EA path /ren1 matches on path -parent ino 128 matches + +Check parent +succeeded checking I inodes 5. dir to dir2 where dir2 does not exist -EA path /ren1/ren2/ren3/ren6 matches on path -parent ino 3670144 matches -EA path /ren1/ren2/ren3 matches on path -parent ino 3145856 matches -EA path /ren1/ren2 matches on path -parent ino 2621568 matches -EA path /ren1 matches on path -parent ino 128 matches + +Check parent +succeeded checking I inodes Testing symlink -EA path /symlink1 matches on path -parent ino 128 matches -EA path /hlink1 matches on path -parent ino 128 matches -EA path /hlink2 matches on path -parent ino 128 matches -EA path /hlink3 matches on path -parent ino 128 matches + +Check parent +succeeded checking I inodes + +Check parent +succeeded checking I inodes + +Check parent +succeeded checking I inodes + +Check parent +succeeded checking I inodes Testing fsstress ltp/fsstress -z -f rmdir=10 -f link=10 -f creat=10 -f mkdir=10 -f rename=30 -f unlink=10 -f symlink=10 -n 1000 -d outdir -p 3 seed = S -succeeded checking P paths + +Check parent succeeded checking I inodes Testing dirstress src/dirstress -d outdir -f 1000 -k -p 3 -n 1 src/dirstress -d outdir -f 1000 -k -p 3 -n 5 -succeeded checking P paths + +Check parent succeeded checking I inodes