ALWAYS_EXCEPT+=" 130a 130b 130c 130d 130e 130f 130g"
fi
+proc_regexp="/{proc,sys}/{fs,sys,kernel/debug}/{lustre,lnet}/"
+
# Get the SLES distro version
#
# Returns a version string that should only be used in comparing
# cleanup the directory
rm -fr $dir
- test_mkdir -c1 $dir
+ mkdir_on_mdt -i $((RANDOM % MDSCOUNT)) $dir
$LFS df
$LFS df -i
$LCTL get_param -R '*' &> /dev/null
# Verifing writability with badarea_io.
+ local proc_dirs=$(eval \ls -d $proc_regexp 2>/dev/null)
+ local skipped_params='force_lbug|changelog_mask|daemon_file'
$LCTL list_param -FR '*' | grep '=' | tr -d = |
- egrep -v 'force_lbug|changelog_mask' | xargs badarea_io ||
+ egrep -v "$skipped_params" |
+ xargs -n 1 find $proc_dirs -name |
+ xargs -n 1 badarea_io ||
error "client badarea_io failed"
# remount the FS in case writes/reads /proc break the FS
remote_mds_nodsh && skip "remote MDS with nodsh"
remote_ost_nodsh && skip "remote OST with nodsh"
+ local proc_dirs=$(eval \ls -d $proc_regexp 2>/dev/null)
+ local skipped_params="'force_lbug|changelog_mask|daemon_file'"
local facet
for facet in mds1 ost1; do
local facet_ver=$(lustre_version_code $facet)
fi
if [ $facet_ver -ge $(version_code 2.5.54) ]; then
do_facet $facet "$LCTL list_param -FR '*' | grep '=' |
- tr -d = | egrep -v 'force_lbug|changelog_mask' |
- xargs badarea_io" ||
+ tr -d = | egrep -v $skipped_params |
+ xargs -n 1 find $proc_dirs -name |
+ xargs -n 1 badarea_io" ||
error "$facet badarea_io failed"
else
skip_noexit "$facet: too old lustre for get_param -R"
[ -n "$FILESET" ] && skip "SKIP due to FILESET set"
# create parent directory on a single MDT to avoid cross-MDT hardlinks
- test_mkdir -p -c1 $DIR/$tdir/d
+ mkdir_on_mdt0 $DIR/$tdir
# test dirs inherit from its stripe
- mkdir -p $DIR/$tdir/d/foo1 || error "mkdir error"
- mkdir -p $DIR/$tdir/d/foo2 || error "mkdir error"
- cp /etc/hosts $DIR/$tdir/d/foo1/$tfile
- ln $DIR/$tdir/d/foo1/$tfile $DIR/$tdir/d/foo2/link
+ mkdir -p $DIR/$tdir/foo1 || error "mkdir error"
+ mkdir -p $DIR/$tdir/foo2 || error "mkdir error"
+ cp /etc/hosts $DIR/$tdir/foo1/$tfile
+ ln $DIR/$tdir/foo1/$tfile $DIR/$tdir/foo2/link
touch $DIR/f
# get fid of parents
- local FID0=$($LFS path2fid $DIR/$tdir/d)
- local FID1=$($LFS path2fid $DIR/$tdir/d/foo1)
- local FID2=$($LFS path2fid $DIR/$tdir/d/foo2)
+ local FID0=$($LFS path2fid $DIR/$tdir)
+ local FID1=$($LFS path2fid $DIR/$tdir/foo1)
+ local FID2=$($LFS path2fid $DIR/$tdir/foo2)
local FID3=$($LFS path2fid $DIR)
# check that path2fid --parents returns expected <parent_fid>/name
# 1) test for a directory (single parent)
- local parent=$($LFS path2fid --parents $DIR/$tdir/d/foo1)
+ local parent=$($LFS path2fid --parents $DIR/$tdir/foo1)
[ "$parent" == "$FID0/foo1" ] ||
error "expected parent: $FID0/foo1, got: $parent"
# 2) test for a file with nlink > 1 (multiple parents)
- parent=$($LFS path2fid --parents $DIR/$tdir/d/foo1/$tfile)
+ parent=$($LFS path2fid --parents $DIR/$tdir/foo1/$tfile)
echo "$parent" | grep -F "$FID1/$tfile" ||
error "$FID1/$tfile not returned in parent list"
echo "$parent" | grep -F "$FID2/link" ||
error "$FID2/link not returned in parent list"
# 3) get parent by fid
- local file_fid=$($LFS path2fid $DIR/$tdir/d/foo1/$tfile)
+ local file_fid=$($LFS path2fid $DIR/$tdir/foo1/$tfile)
parent=$($LFS path2fid --parents $MOUNT/.lustre/fid/$file_fid)
echo "$parent" | grep -F "$FID1/$tfile" ||
error "$FID1/$tfile not returned in parent list (by fid)"
lctl set_param llite.*.xattr_cache 1
# 6.1) linkea update on rename
- mv $DIR/$tdir/d/foo1/$tfile $DIR/$tdir/d/foo2/$tfile.moved
+ mv $DIR/$tdir/foo1/$tfile $DIR/$tdir/foo2/$tfile.moved
# get parents by fid
parent=$($LFS path2fid --parents $MOUNT/.lustre/fid/$file_fid)
error "$FID2/$tfile.moved is not in parent list"
# 6.2) linkea update on unlink
- rm -f $DIR/$tdir/d/foo2/link
+ rm -f $DIR/$tdir/foo2/link
parent=$($LFS path2fid --parents $MOUNT/.lustre/fid/$file_fid)
# foo2/link should no longer be returned in parent list
echo "$parent" | grep -F "$FID2/link" &&
$CLIENT_VERSION -gt $(version_code 2.6.99) ]] ||
skip "Need MDS version at least 2.6.92"
- mkdir -p $DIR/$tdir
+ mkdir_on_mdt0 $DIR/$tdir
llapi_fid_test -d $DIR/$tdir
}
run_test 154g "various llapi FID tests"
mkdir_on_mdt0 $DIR/$tdir || error "mkdir $tdir failed"
$LFS mkdir -i $((MDSCOUNT - 1)) $DIR/$tdir/remote ||
error "mkdir remote failed"
- mkdir $DIR/$tdir/remote/subdir || error "mkdir remote/subdir failed"
+ $LFS mkdir -i $((MDSCOUNT - 1)) $DIR/$tdir/remote/subdir ||
+ error "mkdir remote/subdir failed"
$LFS mkdir -i 0 -c $MDSCOUNT $DIR/$tdir/striped ||
error "mkdir striped failed"
mkdir $DIR/$tdir/striped/subdir || error "mkdir striped/subdir failed"
stripe_count=$($LFS getdirstripe -c $dir)
[ $stripe_count -eq 0 ] ||
error "expect 1 get $stripe_count for $dir"
- stripe_index=$($LFS getdirstripe -i $dir)
- [ $stripe_index -eq 0 ] ||
- error "expect 0 get $stripe_index for $dir"
done
}
run_test 300g "check default striped directory for normal directory"
#count the number of parameters by "list_param -R"
local params=$($LCTL list_param -R '*' 2>/dev/null | wc -l)
#count the number of parameters by listing proc files
- local proc_regexp="/{proc,sys}/{fs,sys,kernel/debug}/{lustre,lnet}/"
local proc_dirs=$(eval \ls -d $proc_regexp 2>/dev/null)
echo "proc_dirs='$proc_dirs'"
[ -n "$proc_dirs" ] || error "no proc_dirs on $HOSTNAME"