[ "$SLOW" = "no" ] && EXCEPT_SLOW="24o 27m 64b 68 71 77f 78 115 124b 230d"
-[ $(facet_fstype $SINGLEMDS) = "zfs" ] &&
-# bug number for skipped test: LU-1593 LU-2833 LU-1957 LU-2805
- ALWAYS_EXCEPT="$ALWAYS_EXCEPT 34h 48a 180 184c"
+if [ $(facet_fstype $SINGLEMDS) = "zfs" ]; then
+ # bug number for skipped test: LU-1593 LU-2833 LU-1957 LU-2805
+ ALWAYS_EXCEPT="$ALWAYS_EXCEPT 34h 48a 180 184c"
+ [ "$SLOW" = "no" ] && EXCEPT_SLOW="$EXCEPT_SLOW 51b 51ba"
+fi
FAIL_ON_ERROR=false
test_mkdir -p -c1 $BASE
+ $LFS df
+ $LFS df -i
local mdtidx=$(printf "%04x" $($LFS getstripe -M $BASE))
local numfree=$(lctl get_param -n mdc.$FSNAME-MDT$mdtidx*.filesfree)
- [[ $numfree -lt 21000 ]] && skip "not enough free inodes ($numfree)" &&
+ [[ $numfree -lt 21000 ]] &&
+ skip "not enough free inodes ($numfree) on MDT$mdtidx" &&
return
[[ $numfree -lt $NUMTEST ]] && NUMTEST=$(($numfree - 50)) &&
- echo "reduced count to $NUMTEST due to inodes"
+ echo "reduced count to $NUMTEST due to inodes on MDT$mdtidx"
# need to check free space for the directories as well
local blkfree=$(lctl get_param -n mdc.$FSNAME-MDT$mdtidx*.kbytesavail)
numfree=$((blkfree / 4))
- [[ $numfree -lt $NUMTEST ]] && NUMTEST=$(($numfree - 50)) &&
- echo "reduced count to $NUMTEST due to blocks"
+ [[ $numfree -lt $NUMTEST ]] && NUMTEST=$((numfree - 50)) &&
+ echo "reduced count to $NUMTEST due to blocks on MDT$mdtidx"
createmany -d $BASE/d $NUMTEST && echo $NUMTEST > $BASE/fnum ||
+ {
+ $LFS df
+ $LFS df -i
echo "failed" > $BASE/fnum
+ error "failed to create $NUMTEST subdirs in MDT$mdtidx:$BASE"
+ }
}
run_test 51b "exceed 64k subdirectory nlink limit"
}
run_test 56v "check 'lfs find -mdt match with lfs getstripe -M' ======="
-# Get and check the actual stripe count of one file.
-# Usage: check_stripe_count <file> <expected_stripe_count>
-check_stripe_count() {
- local file=$1
- local expected=$2
- local actual
-
- [[ -z "$file" || -z "$expected" ]] &&
- error "check_stripe_count: invalid argument!"
-
- local cmd="$GETSTRIPE -c $file"
- actual=$($cmd) || error "$cmd failed"
- actual=${actual%% *}
-
- if [[ $actual -ne $expected ]]; then
- [[ $expected -eq -1 ]] ||
- error "$cmd wrong: found $actual, expected $expected"
- [[ $actual -eq $OSTCOUNT ]] ||
- error "$cmd wrong: found $actual, expected $OSTCOUNT"
- fi
-}
-
test_56w() {
[ $PARALLEL == "yes" ] && skip "skip parallel run" && return
TDIR=$DIR/${tdir}w
setfattr --remove=$trusted.$name $file1 2> /dev/null
done
+ if [ $(lustre_version_code $SINGLEMDS) -gt $(version_code 2.6.50) ]
+ then
+ name="lfsck_ns"
+ # Try to copy xattr from $file0 to $file1.
+ value=$(getxattr $file0 trusted.$name 2> /dev/null)
+
+ setfattr --name=trusted.$name --value="$value" $file1 ||
+ error "setxattr 'trusted.$name' failed"
+
+ # Try to set a garbage xattr.
+ value=0sVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIGl0c2VsZi4=
+
+ setfattr --name=trusted.$name --value="$value" $file1 ||
+ error "setxattr 'trusted.$name' failed"
+
+ # Try to remove the xattr from $file1. We don't care if this
+ # appears to succeed or fail, we just don't want there to be
+ # any changes or crashes.
+ setfattr --remove=$trusted.$name $file1 2> /dev/null
+ fi
+
# Get 'after' xattrs of file1.
getfattr --absolute-names --dump --match=- $file1 > $xattr1
run_test 238 "Verify linkea consistency"
test_239() {
+ [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.5.60) ] &&
+ skip "Need MDS version at least 2.5.60" && return
local list=$(comma_list $(mdts_nodes))
mkdir -p $DIR/$tdir