This patch adds a test for basic parent pointer operations, including link, unlink, rename, overwrite, hardlinks and error inject. Signed-off-by: Allison Henderson <allison.henderson@xxxxxxxxxx> --- tests/xfs/448 | 423 +++++++++++++++++++++ tests/xfs/448.out | 1096 +++++++++++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/group | 1 + 3 files changed, 1520 insertions(+) diff --git a/tests/xfs/448 b/tests/xfs/448 new file mode 100755 index 0000000..8353bdb --- /dev/null +++ b/tests/xfs/448 @@ -0,0 +1,423 @@ +#! /bin/bash +# Test 448 +# +# parent pointer tests +# +#----------------------------------------------------------------------- +# Copyright (c) 2018 Oracle, Inc. All Rights Reserved. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it would be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +#----------------------------------------------------------------------- +# + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +seqfull="$seqres.full" +tatus=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 15 + +_cleanup() +{ + cd / + rm -f $tmp.* +} + +filter_dbval() +{ + awk '{ print $4 }' +} + +_full() +{ + echo "" >>$seqfull + echo "*** $* ***" >>$seqfull + echo "" >>$seqfull +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter +. ./common/reflink +. ./common/inject + +# remove previous $seqres.full before test +rm -f $seqres.full + +# Modify as appropriate +_supported_os Linux +_supported_fs xfs +_require_scratch +_require_xfs_io_error_injection "delayed_attr" + +echo "Silence is golden." + +# real QA test starts here +protofile=$tmp.proto +tempfile=$tmp.file + +echo fish >$tempfile +$here/src/devzero -b 2048 -n 2 -c -v 44 $tempfile.2 + +cat >$protofile <<EOF +DUMMY1 +0 0 +: root directory +d--777 3 1 +: a directory +testfolder1 d--755 3 1 +file1 ---755 3 1 /dev/null +$ +: back in the root +testfolder2 d--755 3 1 +file2 ---755 3 1 /dev/null +: done +$ +EOF + +if [ $? -ne 0 ] +then + _fail "failed to create test protofile" +fi + +# +# parse_parent_pointer PARENT_POINTER_LIST PARENT_INODE PARENT_POINTER_NAME +# +# Given a list of parent pointers, find the record that matches +# the given inode and filename +# +# outputs: +# PPINO : Parent pointer inode +# PPGEN : Parent pointer generation +# PPNAME : Parent pointer name +# PPNAME_LEN : Parent pointer name length +# +parse_parent_pointer() +{ + PARENTS=$1 + PINO=$2 + PARENT_POINTER_NAME=$3 + + PLEN=${#PARENTS[@]} + FOUND=0 + + # Find the entry that has the same inode as the parent + # and parse out the entry info + for (( i=0; i<${PLEN}; i++ )); do + + #advance to the parent entry matching the parent inode + if ! echo ${PARENTS[$i]} | grep -q "p_ino = $PINO" ; then + continue + fi + + PPINO="$(echo ${PARENTS[$i]} | awk '{print $NF}')" + + ((i++)) + PPGEN="$(echo ${PARENTS[$i]} | awk '{print $NF}')" + + ((i++)) + PPNAME_LEN="$(echo ${PARENTS[$i]} | awk '{print $NF}')" + + ((i++)) + PPNAME="$(echo ${PARENTS[$i]} | awk '{print $NF}' | cut -d '"' -f2 )" + + if [ "$PPNAME" != "$PARENT_POINTER_NAME" ]; then + continue + fi + + break + done + + # If exhausted the list, we didnt find anything + if [ $i -eq $PLEN ]; then + return 0 + fi + + # Verify the parent pointer name length is correct + if [ $PPNAME_LEN -ne ${#PARENT_POINTER_NAME} ] + then + _fail "Bad parent pointer reclen for $CHILD_PATH" + fi + + #return sucess + return 1 + +} + +# +# verify_parent PARENT_PATH PARENT_POINTER_NAME CHILD_PATH +# +# Verify that the given child path lists the given parent as a parent pointer +# and that the parent pointer name matches the given name +# +# Examples: +# +# #simple example +# mkdir testfolder1 +# touch testfolder1/file1 +# verify_parent testfolder1 file1 testfolder1/file1 +# +# #hardlink example +# mkdir testfolder1 +# mkdir testfolder2 +# touch testfolder1/file1 +# ln testfolder1/file1 testfolder2/file1_ln +# verify_parent testfolder2 file1_ln testfolder1/file1 +# +verify_parent() +{ + + PARENT_PATH=$1 + PARENT_POINTER_NAME=$2 + CHILD_PATH=$3 + + CHILD_NAME=$(basename "$CHILD_PATH") + PPINO=0 + PPGEN=0 + PPNAME_LEN=0 + PPNAME="" + IFS=$'\n' + + # Verify parent exists + if [ ! -d $SCRATCH_MNT/$PARENT_PATH ]; then + _fail "$SCRATCH_MNT/$PARENT_PATH not found" + else + echo "*** $PARENT_PATH OK" + fi + + # Verify child exists + if [ ! -f $SCRATCH_MNT/$CHILD_PATH ]; then + _fail "$SCRATCH_MNT/$CHILD_PATH not found" + else + echo "*** $CHILD_PATH OK" + fi + + # Verify the parent pointer name exists as a child of the parent + PARENT_PPATH="$PARENT_PATH/$PARENT_POINTER_NAME" + + if [ ! -f $SCRATCH_MNT/$PARENT_PPATH ]; then + _fail "$SCRATCH_MNT/$PARENT_PPATH not found" + else + echo "*** $PARENT_PPATH OK" + fi + + # Get the inodes of both parent and child + PINO="$(stat -c '%i' $SCRATCH_MNT/$PARENT_PATH)" + CINO="$(stat -c '%i' $SCRATCH_MNT/$CHILD_PATH)" + + # Get all the parent pointers of the child + PARENTS=($($XFS_IO_PROG -x -c parent $SCRATCH_MNT/$CHILD_PATH)) + if [[ $? != 0 ]]; then + _fail "No parent pointers found for $CHILD_PATH" + fi + + parse_parent_pointer $PARENTS $PINO $PARENT_POINTER_NAME + FOUND=$? + + # If we didnt find one, bail out + if [ $FOUND -eq 0 ]; then + _fail "No parent pointer record found for $PARENT_PATH in $CHILD_PATH" + fi + + # Verify the inode generated by the parent pointer name is + # the same as the child inode + PPPINO="$(stat -c '%i' $SCRATCH_MNT/$PARENT_PPATH)" + if [ $CINO -ne $PPPINO ] + then + _fail "Bad parent pointer name value for $CHILD_PATH."\ + "$SCRATCH_MNT/$PARENT_PPATH belongs to inode $PPPINO, but should be $CINO" + fi + + echo "*** Verified parent pointer:"\ + "inode:$PPINO, name:$PPNAME, namelen:$PPNAME_LEN" + echo "*** Parent pointer OK for child $CHILD_PATH inode:$CINO" +} + +# +# verify_parent PARENT_PATH PARENT_POINTER_NAME CHILD_PATH +# +# Verify that the given child path contains no parent pointer entry +# for the given parent path and parnet pointer name +# +verify_no_parent() +{ + + PARENT_PATH=$1 + PARENT_PNAME=$2 + CHILD_PATH=$3 + CHILD_NAME=$(basename "$CHILD_PATH") + PPINO=0 + PPGEN=0 + PPNAME_LEN=0 + PPNAME="" + IFS=$'\n' + + # Check if parent even exists + if [ ! -d $SCRATCH_MNT/$PARENT_PATH ]; then + return 0 + fi + + + # Verify child exists + if [ ! -f $SCRATCH_MNT/$CHILD_PATH ]; then + _fail "$SCRATCH_MNT/$CHILD_PATH not found" + else + echo "*** $CHILD_PATH OK" + fi + + # Get parent inode + PINO="$(stat -c '%i' $SCRATCH_MNT/$PARENT_PATH)" + + # Get all the parent pointers of the child + PARENTS=($($XFS_IO_PROG -x -c parent $SCRATCH_MNT/$CHILD_PATH)) + if [[ $? != 0 ]]; then + return 0 + fi + + parse_parent_pointer $PARENTS $PINO $PARENT_PNAME + FOUND=$? + + # If we didnt find one, return sucess + if [ $FOUND -eq 0 ]; then + return 0 + fi + + _fail "Parent pointer entry found where none should:"\ + "inode:$PPINO, gen:$PPGEN," + "name:$PPNAME, namelen:$PPNAME_LEN" +} + +verify_fs() +{ + echo "*** create FS" + + rm -f $seqfull + _scratch_unmount >/dev/null 2>&1 + + _scratch_mkfs_xfs -f -n parent=1 -p $protofile >>$seqfull 2>&1 \ + || _fail "mkfs failed" + echo "*** check FS" + _check_scratch_fs + + echo "*** mount FS" + _full " mount" + _scratch_mount >>$seqfull 2>&1 \ + || _fail "mount failed" + + TESTFOLDER1="testfolder1" + TESTFOLDER2="testfolder2" + FILE1="file1" + FILE2="file2" + FILE3="file3" + FILE4="file4" + FILE5="file5" + FILE1_LN="file1_link" + + echo "" + echo "Create parent pointer test" + verify_parent "$TESTFOLDER1" "$FILE1" "$TESTFOLDER1/$FILE1" + + echo "" + echo "Move parent pointer test" + mv $SCRATCH_MNT/$TESTFOLDER1/$FILE1 $SCRATCH_MNT/$TESTFOLDER2/$FILE1 + verify_parent "$TESTFOLDER2" "$FILE1" "$TESTFOLDER2/$FILE1" + + echo "" + echo "Hard link parent pointer test" + ln $SCRATCH_MNT/$TESTFOLDER2/$FILE1 $SCRATCH_MNT/$TESTFOLDER1/$FILE1_LN + verify_parent "$TESTFOLDER1" "$FILE1_LN" "$TESTFOLDER1/$FILE1_LN" + verify_parent "$TESTFOLDER1" "$FILE1_LN" "$TESTFOLDER2/$FILE1" + verify_parent "$TESTFOLDER2" "$FILE1" "$TESTFOLDER1/$FILE1_LN" + verify_parent "$TESTFOLDER2" "$FILE1" "$TESTFOLDER2/$FILE1" + + echo "" + echo "Remove hard link parent pointer test" + rm $SCRATCH_MNT/$TESTFOLDER2/$FILE1 + verify_parent "$TESTFOLDER1" "$FILE1_LN" "$TESTFOLDER1/$FILE1_LN" + verify_no_parent "$TESTFOLDER2" "$FILE1" "$TESTFOLDER1/$FILE1_LN" + + echo "" + echo "Rename parent pointer test" + mv $SCRATCH_MNT/$TESTFOLDER1/$FILE1_LN $SCRATCH_MNT/$TESTFOLDER1/$FILE2 + verify_parent "$TESTFOLDER1" "$FILE2" "$TESTFOLDER1/$FILE2" + verify_no_parent "$TESTFOLDER1" "$FILE1_LN" "$TESTFOLDER1/$FILE2" + + echo "" + echo "Over write parent pointer test" + touch $SCRATCH_MNT/$TESTFOLDER2/$FILE3 + verify_parent "$TESTFOLDER2" "$FILE3" "$TESTFOLDER2/$FILE3" + mv -f $SCRATCH_MNT/$TESTFOLDER2/$FILE3 $SCRATCH_MNT/$TESTFOLDER1/$FILE2 + verify_parent "$TESTFOLDER1" "$FILE2" "$TESTFOLDER1/$FILE2" + + + echo "" + echo "Multi link parent pointer test" + NLINKS=100 + touch $SCRATCH_MNT/$TESTFOLDER1/$FILE1 + for (( j=0; j<$NLINKS; j++ )); do + ln $SCRATCH_MNT/$TESTFOLDER1/$FILE1 $SCRATCH_MNT/$TESTFOLDER1/$FILE1_LN.$j + verify_parent "$TESTFOLDER1" "$FILE1_LN.$j" "$TESTFOLDER1/$FILE1" + verify_parent "$TESTFOLDER1" "$FILE1" "$TESTFOLDER1/$FILE1_LN.$j" + done + echo "Multi unlink parent pointer test" + for (( j=$NLINKS-1; j<=0; j-- )); do + rm $SCRATCH_MNT/$TESTFOLDER1/$FILE1_LN.$j + verify_no_parent "$TESTFOLDER1" "$FILE1_LN.$j" "$TESTFOLDER1/$FILE1" + done + + + echo "" + echo "Error inject test" + + echo "Create files" + touch $SCRATCH_MNT/$TESTFOLDER1/$FILE4 + verify_parent "$TESTFOLDER1" "$FILE4" "$TESTFOLDER1/$FILE4" + + echo "Inject error" + _scratch_inject_error "delayed_attr" + + echo "Move files" + mv $SCRATCH_MNT/$TESTFOLDER1/$FILE4 $SCRATCH_MNT/$TESTFOLDER2/$FILE5 + + echo "FS should be shut down, touch will fail" + touch $SCRATCH_MNT/$TESTFOLDER2/$FILE5 2>&1 | _filter_scratch + + echo "Remount to replay log" + _scratch_inject_logprint >> $seqres.full + + echo "FS should be online, touch should succeed" + touch $SCRATCH_MNT/$TESTFOLDER2/$FILE5 + + echo "Check files again" + verify_parent "$TESTFOLDER2" "$FILE5" "$TESTFOLDER2/$FILE5" + + echo "*** unmount FS" + _full "umount" + _scratch_unmount >>$seqfull 2>&1 \ + || _fail "umount failed" + +} + +verify_fs + +echo "*** done" +rm $seqfull +status=0 + +# success, all done +status=0 +exit diff --git a/tests/xfs/448.out b/tests/xfs/448.out new file mode 100644 index 0000000..ccb2d4e --- /dev/null +++ b/tests/xfs/448.out @@ -0,0 +1,1096 @@ +QA output created by 448 +Silence is golden. +Wrote 2048.00Kb (value 0x2c) +*** create FS +*** check FS +*** mount FS + +Create parent pointer test +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 + +Move parent pointer test +*** testfolder2 OK +*** testfolder2/file1 OK +*** testfolder2/file1 OK +*** Verified parent pointer: inode:33613312, name:file1, namelen:5 +*** Parent pointer OK for child testfolder2/file1 inode:16777345 + +Hard link parent pointer test +*** testfolder1 OK +*** testfolder1/file1_link OK +*** testfolder1/file1_link OK +*** Verified parent pointer: inode:16777344, name:file1_link, namelen:10 +*** Parent pointer OK for child testfolder1/file1_link inode:16777345 +*** testfolder1 OK +*** testfolder2/file1 OK +*** testfolder1/file1_link OK +*** Verified parent pointer: inode:16777344, name:file1_link, namelen:10 +*** Parent pointer OK for child testfolder2/file1 inode:16777345 +*** testfolder2 OK +*** testfolder1/file1_link OK +*** testfolder2/file1 OK +*** Verified parent pointer: inode:33613312, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link inode:16777345 +*** testfolder2 OK +*** testfolder2/file1 OK +*** testfolder2/file1 OK +*** Verified parent pointer: inode:33613312, name:file1, namelen:5 +*** Parent pointer OK for child testfolder2/file1 inode:16777345 + +Remove hard link parent pointer test +*** testfolder1 OK +*** testfolder1/file1_link OK +*** testfolder1/file1_link OK +*** Verified parent pointer: inode:16777344, name:file1_link, namelen:10 +*** Parent pointer OK for child testfolder1/file1_link inode:16777345 +*** testfolder1/file1_link OK + +Rename parent pointer test +*** testfolder1 OK +*** testfolder1/file2 OK +*** testfolder1/file2 OK +*** Verified parent pointer: inode:16777344, name:file2, namelen:5 +*** Parent pointer OK for child testfolder1/file2 inode:16777345 +*** testfolder1/file2 OK + +Over write parent pointer test +*** testfolder2 OK +*** testfolder2/file3 OK +*** testfolder2/file3 OK +*** Verified parent pointer: inode:33613312, name:file3, namelen:5 +*** Parent pointer OK for child testfolder2/file3 inode:33613314 +*** testfolder1 OK +*** testfolder1/file2 OK +*** testfolder1/file2 OK +*** Verified parent pointer: inode:16777344, name:file2, namelen:5 +*** Parent pointer OK for child testfolder1/file2 inode:33613314 + +Multi link parent pointer test +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.0 OK +*** Verified parent pointer: inode:16777344, name:file1_link.0, namelen:12 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.0 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.0 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.1 OK +*** Verified parent pointer: inode:16777344, name:file1_link.1, namelen:12 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.1 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.2 OK +*** Verified parent pointer: inode:16777344, name:file1_link.2, namelen:12 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.2 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.2 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.3 OK +*** Verified parent pointer: inode:16777344, name:file1_link.3, namelen:12 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.3 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.3 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.4 OK +*** Verified parent pointer: inode:16777344, name:file1_link.4, namelen:12 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.4 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.4 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.5 OK +*** Verified parent pointer: inode:16777344, name:file1_link.5, namelen:12 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.5 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.5 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.6 OK +*** Verified parent pointer: inode:16777344, name:file1_link.6, namelen:12 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.6 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.6 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.7 OK +*** Verified parent pointer: inode:16777344, name:file1_link.7, namelen:12 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.7 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.7 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.8 OK +*** Verified parent pointer: inode:16777344, name:file1_link.8, namelen:12 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.8 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.8 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.9 OK +*** Verified parent pointer: inode:16777344, name:file1_link.9, namelen:12 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.9 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.9 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.10 OK +*** Verified parent pointer: inode:16777344, name:file1_link.10, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.10 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.10 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.11 OK +*** Verified parent pointer: inode:16777344, name:file1_link.11, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.11 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.11 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.12 OK +*** Verified parent pointer: inode:16777344, name:file1_link.12, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.12 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.12 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.13 OK +*** Verified parent pointer: inode:16777344, name:file1_link.13, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.13 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.13 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.14 OK +*** Verified parent pointer: inode:16777344, name:file1_link.14, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.14 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.14 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.15 OK +*** Verified parent pointer: inode:16777344, name:file1_link.15, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.15 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.15 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.16 OK +*** Verified parent pointer: inode:16777344, name:file1_link.16, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.16 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.16 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.17 OK +*** Verified parent pointer: inode:16777344, name:file1_link.17, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.17 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.17 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.18 OK +*** Verified parent pointer: inode:16777344, name:file1_link.18, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.18 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.18 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.19 OK +*** Verified parent pointer: inode:16777344, name:file1_link.19, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.19 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.19 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.20 OK +*** Verified parent pointer: inode:16777344, name:file1_link.20, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.20 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.20 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.21 OK +*** Verified parent pointer: inode:16777344, name:file1_link.21, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.21 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.21 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.22 OK +*** Verified parent pointer: inode:16777344, name:file1_link.22, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.22 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.22 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.23 OK +*** Verified parent pointer: inode:16777344, name:file1_link.23, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.23 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.23 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.24 OK +*** Verified parent pointer: inode:16777344, name:file1_link.24, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.24 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.24 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.25 OK +*** Verified parent pointer: inode:16777344, name:file1_link.25, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.25 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.25 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.26 OK +*** Verified parent pointer: inode:16777344, name:file1_link.26, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.26 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.26 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.27 OK +*** Verified parent pointer: inode:16777344, name:file1_link.27, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.27 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.27 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.28 OK +*** Verified parent pointer: inode:16777344, name:file1_link.28, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.28 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.28 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.29 OK +*** Verified parent pointer: inode:16777344, name:file1_link.29, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.29 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.29 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.30 OK +*** Verified parent pointer: inode:16777344, name:file1_link.30, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.30 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.30 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.31 OK +*** Verified parent pointer: inode:16777344, name:file1_link.31, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.31 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.31 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.32 OK +*** Verified parent pointer: inode:16777344, name:file1_link.32, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.32 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.32 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.33 OK +*** Verified parent pointer: inode:16777344, name:file1_link.33, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.33 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.33 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.34 OK +*** Verified parent pointer: inode:16777344, name:file1_link.34, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.34 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.34 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.35 OK +*** Verified parent pointer: inode:16777344, name:file1_link.35, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.35 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.35 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.36 OK +*** Verified parent pointer: inode:16777344, name:file1_link.36, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.36 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.36 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.37 OK +*** Verified parent pointer: inode:16777344, name:file1_link.37, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.37 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.37 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.38 OK +*** Verified parent pointer: inode:16777344, name:file1_link.38, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.38 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.38 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.39 OK +*** Verified parent pointer: inode:16777344, name:file1_link.39, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.39 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.39 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.40 OK +*** Verified parent pointer: inode:16777344, name:file1_link.40, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.40 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.40 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.41 OK +*** Verified parent pointer: inode:16777344, name:file1_link.41, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.41 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.41 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.42 OK +*** Verified parent pointer: inode:16777344, name:file1_link.42, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.42 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.42 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.43 OK +*** Verified parent pointer: inode:16777344, name:file1_link.43, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.43 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.43 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.44 OK +*** Verified parent pointer: inode:16777344, name:file1_link.44, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.44 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.44 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.45 OK +*** Verified parent pointer: inode:16777344, name:file1_link.45, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.45 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.45 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.46 OK +*** Verified parent pointer: inode:16777344, name:file1_link.46, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.46 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.46 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.47 OK +*** Verified parent pointer: inode:16777344, name:file1_link.47, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.47 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.47 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.48 OK +*** Verified parent pointer: inode:16777344, name:file1_link.48, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.48 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.48 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.49 OK +*** Verified parent pointer: inode:16777344, name:file1_link.49, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.49 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.49 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.50 OK +*** Verified parent pointer: inode:16777344, name:file1_link.50, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.50 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.50 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.51 OK +*** Verified parent pointer: inode:16777344, name:file1_link.51, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.51 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.51 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.52 OK +*** Verified parent pointer: inode:16777344, name:file1_link.52, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.52 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.52 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.53 OK +*** Verified parent pointer: inode:16777344, name:file1_link.53, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.53 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.53 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.54 OK +*** Verified parent pointer: inode:16777344, name:file1_link.54, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.54 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.54 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.55 OK +*** Verified parent pointer: inode:16777344, name:file1_link.55, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.55 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.55 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.56 OK +*** Verified parent pointer: inode:16777344, name:file1_link.56, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.56 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.56 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.57 OK +*** Verified parent pointer: inode:16777344, name:file1_link.57, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.57 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.57 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.58 OK +*** Verified parent pointer: inode:16777344, name:file1_link.58, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.58 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.58 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.59 OK +*** Verified parent pointer: inode:16777344, name:file1_link.59, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.59 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.59 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.60 OK +*** Verified parent pointer: inode:16777344, name:file1_link.60, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.60 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.60 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.61 OK +*** Verified parent pointer: inode:16777344, name:file1_link.61, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.61 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.61 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.62 OK +*** Verified parent pointer: inode:16777344, name:file1_link.62, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.62 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.62 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.63 OK +*** Verified parent pointer: inode:16777344, name:file1_link.63, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.63 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.63 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.64 OK +*** Verified parent pointer: inode:16777344, name:file1_link.64, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.64 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.64 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.65 OK +*** Verified parent pointer: inode:16777344, name:file1_link.65, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.65 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.65 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.66 OK +*** Verified parent pointer: inode:16777344, name:file1_link.66, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.66 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.66 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.67 OK +*** Verified parent pointer: inode:16777344, name:file1_link.67, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.67 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.67 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.68 OK +*** Verified parent pointer: inode:16777344, name:file1_link.68, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.68 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.68 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.69 OK +*** Verified parent pointer: inode:16777344, name:file1_link.69, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.69 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.69 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.70 OK +*** Verified parent pointer: inode:16777344, name:file1_link.70, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.70 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.70 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.71 OK +*** Verified parent pointer: inode:16777344, name:file1_link.71, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.71 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.71 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.72 OK +*** Verified parent pointer: inode:16777344, name:file1_link.72, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.72 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.72 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.73 OK +*** Verified parent pointer: inode:16777344, name:file1_link.73, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.73 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.73 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.74 OK +*** Verified parent pointer: inode:16777344, name:file1_link.74, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.74 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.74 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.75 OK +*** Verified parent pointer: inode:16777344, name:file1_link.75, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.75 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.75 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.76 OK +*** Verified parent pointer: inode:16777344, name:file1_link.76, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.76 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.76 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.77 OK +*** Verified parent pointer: inode:16777344, name:file1_link.77, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.77 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.77 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.78 OK +*** Verified parent pointer: inode:16777344, name:file1_link.78, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.78 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.78 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.79 OK +*** Verified parent pointer: inode:16777344, name:file1_link.79, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.79 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.79 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.80 OK +*** Verified parent pointer: inode:16777344, name:file1_link.80, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.80 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.80 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.81 OK +*** Verified parent pointer: inode:16777344, name:file1_link.81, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.81 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.81 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.82 OK +*** Verified parent pointer: inode:16777344, name:file1_link.82, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.82 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.82 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.83 OK +*** Verified parent pointer: inode:16777344, name:file1_link.83, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.83 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.83 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.84 OK +*** Verified parent pointer: inode:16777344, name:file1_link.84, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.84 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.84 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.85 OK +*** Verified parent pointer: inode:16777344, name:file1_link.85, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.85 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.85 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.86 OK +*** Verified parent pointer: inode:16777344, name:file1_link.86, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.86 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.86 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.87 OK +*** Verified parent pointer: inode:16777344, name:file1_link.87, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.87 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.87 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.88 OK +*** Verified parent pointer: inode:16777344, name:file1_link.88, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.88 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.88 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.89 OK +*** Verified parent pointer: inode:16777344, name:file1_link.89, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.89 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.89 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.90 OK +*** Verified parent pointer: inode:16777344, name:file1_link.90, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.90 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.90 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.91 OK +*** Verified parent pointer: inode:16777344, name:file1_link.91, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.91 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.91 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.92 OK +*** Verified parent pointer: inode:16777344, name:file1_link.92, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.92 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.92 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.93 OK +*** Verified parent pointer: inode:16777344, name:file1_link.93, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.93 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.93 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.94 OK +*** Verified parent pointer: inode:16777344, name:file1_link.94, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.94 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.94 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.95 OK +*** Verified parent pointer: inode:16777344, name:file1_link.95, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.95 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.95 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.96 OK +*** Verified parent pointer: inode:16777344, name:file1_link.96, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.96 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.96 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.97 OK +*** Verified parent pointer: inode:16777344, name:file1_link.97, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.97 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.97 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.98 OK +*** Verified parent pointer: inode:16777344, name:file1_link.98, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.98 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.98 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1 OK +*** testfolder1/file1_link.99 OK +*** Verified parent pointer: inode:16777344, name:file1_link.99, namelen:13 +*** Parent pointer OK for child testfolder1/file1 inode:16777345 +*** testfolder1 OK +*** testfolder1/file1_link.99 OK +*** testfolder1/file1 OK +*** Verified parent pointer: inode:16777344, name:file1, namelen:5 +*** Parent pointer OK for child testfolder1/file1_link.99 inode:16777345 +Multi unlink parent pointer test + +Error inject test +Create files +*** testfolder1 OK +*** testfolder1/file4 OK +*** testfolder1/file4 OK +*** Verified parent pointer: inode:16777344, name:file4, namelen:5 +*** Parent pointer OK for child testfolder1/file4 inode:16777346 +Inject error +Move files +mv: cannot move '/mnt/scratch/testfolder1/file4' to '/mnt/scratch/testfolder2/file5': Input/output error +FS should be shut down, touch will fail +touch: cannot touch 'SCRATCH_MNT/testfolder2/file5': Input/output error +Remount to replay log +FS should be online, touch should succeed +Check files again +*** testfolder2 OK +*** testfolder2/file5 OK +*** testfolder2/file5 OK +*** Verified parent pointer: inode:33613312, name:file5, namelen:5 +*** Parent pointer OK for child testfolder2/file5 inode:16777346 +*** unmount FS +*** done diff --git a/tests/xfs/group b/tests/xfs/group index 2319f58..fb74e82 100644 --- a/tests/xfs/group +++ b/tests/xfs/group @@ -445,3 +445,4 @@ 445 auto quick filestreams 446 auto quick 447 auto mount +448 auto -- 2.7.4 -- To unsubscribe from this list: send the line "unsubscribe linux-xfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html