[ "$SLOW" = "no" ] && EXCEPT_SLOW="24o 24D 27m 64b 68 71 77f 78 115 124b 230d"
if [ $(facet_fstype $SINGLEMDS) = "zfs" ]; then
- # bug number for skipped test: LU-1593 LU-4536 LU-5242 LU-1957 LU-2805
- ALWAYS_EXCEPT="$ALWAYS_EXCEPT 34h 65ic 132 180 184c"
+ # bug number for skipped test: LU-1593 LU-4536 LU-5242 LU-1957 LU-2805
+ ALWAYS_EXCEPT="$ALWAYS_EXCEPT 34h 65ic 78 79 80 180 184c"
[ "$SLOW" = "no" ] && EXCEPT_SLOW="$EXCEPT_SLOW 51b 51ba"
fi
check_fs_consistency_17n ||
error "e2fsck report error after create files under remote dir"
- for ((i=0;i<10;i++)); do
+ for ((i = 0; i < 10; i++)); do
rm -rf $DIR/$tdir/remote_dir_${i} ||
error "destroy remote dir error $i"
done
[ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.4.50) ] &&
skip "lustre < 2.4.50 does not support migrate mv " && return
- for ((i=0; i<10; i++)); do
+ for ((i = 0; i < 10; i++)); do
mkdir -p $DIR/$tdir/remote_dir_${i}
createmany -o $DIR/$tdir/remote_dir_${i}/f 10 ||
error "create files under remote dir failed $i"
- $LFS mv -M 1 $DIR/$tdir/remote_dir_${i} ||
+ $LFS mv --mdt-index 1 $DIR/$tdir/remote_dir_${i} ||
error "migrate remote dir error $i"
done
check_fs_consistency_17n || error "e2fsck report error after migration"
- for ((i=0;i<10;i++)); do
+ for ((i = 0; i < 10; i++)); do
rm -rf $DIR/$tdir/remote_dir_${i} ||
error "destroy remote dir error $i"
done
run_test 27g "$GETSTRIPE with no objects"
test_27i() {
- touch $DIR/d27/fsome || error "touch failed"
- [[ $($GETSTRIPE -c $DIR/d27/fsome) -gt 0 ]] || error "missing objects"
+ test_mkdir $DIR/$tdir
+ touch $DIR/$tdir/$tfile || error "touch failed"
+ [[ $($GETSTRIPE -c $DIR/$tdir/$tfile) -gt 0 ]] ||
+ error "missing objects"
}
run_test 27i "$GETSTRIPE with some objects"
}
run_test 27D "validate llapi_layout API"
+# Verify that default_easize is increased from its initial value after
+# accessing a widely striped file.
+test_27E() {
+ [ $OSTCOUNT -lt 2 ] && skip "needs >= 2 OSTs" && return
+
+ # 72 bytes is the minimum space required to store striping
+ # information for a file striped across one OST:
+ # (sizeof(struct lov_user_md_v3) +
+ # sizeof(struct lov_user_ost_data_v1))
+ local min_easize=72
+ $LCTL set_param -n llite.*.default_easize $min_easize ||
+ error "lctl set_param failed"
+ local easize=$($LCTL get_param -n llite.*.default_easize)
+
+ [ $easize -eq $min_easize ] ||
+ error "failed to set default_easize"
+
+ $LFS setstripe -c $OSTCOUNT $DIR/$tfile ||
+ error "setstripe failed"
+ cat $DIR/$tfile
+ rm $DIR/$tfile
+
+ easize=$($LCTL get_param -n llite.*.default_easize)
+
+ [ $easize -gt $min_easize ] ||
+ error "default_easize not updated"
+}
+run_test 27E "check that default extended attribute size properly increases"
+
# createtest also checks that device nodes are created and
# then visible correctly (#2091)
test_28() { # bug 2091
}
run_test 33e "mkdir and striped directory should have same mode"
+cleanup_33f() {
+ trap 0
+ do_facet $SINGLEMDS $LCTL set_param mdt.*.enable_remote_dir_gid=0
+}
+
+test_33f() {
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
+
+ mkdir $DIR/$tdir
+ chmod go+rwx $DIR/$tdir
+ do_facet $SINGLEMDS $LCTL set_param mdt.*.enable_remote_dir_gid=-1
+ trap cleanup_33f EXIT
+
+ $RUNAS lfs mkdir -c$MDSCOUNT $DIR/$tdir/striped_dir ||
+ error "cannot create striped directory"
+
+ $RUNAS touch $DIR/$tdir/striped_dir/{0..16} ||
+ error "cannot create files in striped directory"
+
+ $RUNAS rm $DIR/$tdir/striped_dir/{0..16} ||
+ error "cannot remove files in striped directory"
+
+ $RUNAS rmdir $DIR/$tdir/striped_dir ||
+ error "cannot remove striped directory"
+
+ cleanup_33f
+}
+run_test 33f "nonroot user can create, access, and remove a striped directory"
+
TEST_34_SIZE=${TEST_34_SIZE:-2000000000000}
test_34a() {
rm -f $DIR/f34
error "find $proc_dirs failed"
[ $(lustre_version_code $SINGLEMDS) -le $(version_code 2.5.54) ] &&
- skip "Too old lustre on MDS"
+ skip "Too old lustre on MDS" && return
[ $(lustre_version_code ost1) -le $(version_code 2.5.54) ] &&
- skip "Too old lustre on ost1"
+ skip "Too old lustre on ost1" && return
for facet in $SINGLEMDS ost1; do
do_facet $facet find $proc_dirs \
}
run_test 184d "allow stripeless layouts swap"
+test_184e() {
+ check_swap_layouts_support && return 0
+ [ -z "$(which getfattr 2>/dev/null)" ] &&
+ skip "no getfattr command" && return 0
+
+ local file1=$DIR/$tdir/$tfile-1
+ local file2=$DIR/$tdir/$tfile-2
+ local file3=$DIR/$tdir/$tfile-3
+ local lovea
+
+ mkdir -p $DIR/$tdir
+ touch $file1 || error "create $file1 failed"
+ $OPENFILE -f O_CREAT:O_LOV_DELAY_CREATE $file2 ||
+ error "create $file2 failed"
+ $OPENFILE -f O_CREAT:O_LOV_DELAY_CREATE $file3 ||
+ error "create $file3 failed"
+
+ $LFS swap_layouts $file1 $file2 ||
+ error "swap $file1 $file2 layouts failed"
+
+ lovea=$(getfattr -n trusted.lov $file1 | grep ^trusted)
+ [[ -z "$lovea" ]] || error "$file1 shouldn't have lovea"
+
+ echo 123 > $file1 || error "Should be able to write into $file1"
+
+ $LFS swap_layouts $file1 $file3 ||
+ error "swap $file1 $file3 layouts failed"
+
+ echo 123 > $file1 || error "Should be able to write into $file1"
+
+ rm -rf $file1 $file2 $file3
+}
+run_test 184e "Recreate layout after stripeless layout swaps"
test_185() { # LU-2441
# LU-3553 - no volatile file support in old servers
ln -s $other_dir/$tfile $migrate_dir/${tfile}_ln_other
$LFS mv -v -M $MDTIDX $migrate_dir ||
- error "migrate remote dir error"
+ error "migrate remote dir error"
echo "migratate to MDT1, then checking.."
- for ((i=0; i<10; i++)); do
+ for ((i = 0; i < 10; i++)); do
for file in $(find $migrate_dir/dir_${i}); do
mdt_index=$($LFS getstripe -M $file)
[ $mdt_index == $MDTIDX ] ||
stripe_count=$($LFS getstripe -c $migrate_dir/dir_default_stripe2)
[ $stripe_count = 2 ] ||
- error "dir strpe_count $d != 2 after migration."
+ error "dir strpe_count $d != 2 after migration."
stripe_count=$($LFS getstripe -c $migrate_dir/${tfile}_stripe2)
[ $stripe_count = 2 ] ||
- error "file strpe_count $d != 2 after migration."
+ error "file strpe_count $d != 2 after migration."
#migrate back to MDT0
MDTIDX=0
$LFS mv -v -M $MDTIDX $migrate_dir ||
- error "migrate remote dir error"
+ error "migrate remote dir error"
echo "migrate back to MDT0, checking.."
for file in $(find $migrate_dir); do
#OBD_FAIL_MIGRATE_ENTRIES 0x1801
do_facet mds1 lctl set_param fail_loc=0x20001801
do_facet mds1 lctl set_param fail_val=5
- local t=`ls $DIR/$tdir | wc -l`
- $LFS mv -M $MDTIDX $DIR/$tdir &&
- error "migrate should failed after 5 entries"
- local u=`ls $DIR/$tdir | wc -l`
+ local t=$(ls $DIR/$tdir | wc -l)
+ $LFS mv --mdt-index $MDTIDX $DIR/$tdir &&
+ error "migrate should fail after 5 entries"
+ local u=$(ls $DIR/$tdir | wc -l)
[ "$u" == "$t" ] || error "$u != $t during migration"
for file in $(find $DIR/$tdir); do
}
run_test 300f "check rename cross striped directory"
+test_300_check_default_striped_dir()
+{
+ local dirname=$1
+ local default_count=$2
+ local default_index=$3
+ local stripe_count
+ local stripe_index
+ local dir_stripe_index
+ local dir
+
+ echo "checking $dirname $default_count $default_index"
+ $LFS setdirstripe -D -c $default_count -i $default_index \
+ -t all_char $DIR/$tdir/$dirname ||
+ error "set default stripe on striped dir error"
+ stripe_count=$($LFS getdirstripe -D -c $DIR/$tdir/$dirname)
+ [ $stripe_count -eq $default_count ] ||
+ error "expect $default_count get $stripe_count for $dirname"
+
+ stripe_index=$($LFS getdirstripe -D -i $DIR/$tdir/$dirname)
+ [ $stripe_index -eq $default_index ] ||
+ error "expect $default_index get $stripe_index for $dirname"
+
+ mkdir $DIR/$tdir/$dirname/{test1,test2,test3,test4} ||
+ error "create dirs failed"
+ for dir in $(find $DIR/$tdir/$dirname/*); do
+ stripe_count=$($LFS getdirstripe -c $dir)
+ [ $stripe_count -eq $default_count ] ||
+ error "stripe count $default_count != $stripe_count for $dir"
+
+ stripe_index=$($LFS getdirstripe -i $dir)
+ [ $default_index -eq -1 -o $stripe_index -eq $default_index ] ||
+ error "$stripe_index != $default_index for $dir"
+
+ #check default stripe
+ stripe_count=$($LFS getdirstripe -D -c $dir)
+ [ $stripe_count -eq $default_count ] ||
+ error "default count $default_count != $stripe_count for $dir"
+
+ stripe_index=$($LFS getdirstripe -D -i $dir)
+ [ $stripe_index -eq $default_index ] ||
+ error "default index $default_index != $stripe_index for $dir"
+ done
+ rmdir $DIR/$tdir/$dirname/* || error "rmdir failed"
+}
+
test_300g() {
[ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
- local stripe_count
local dir
+ local stripe_count
+ local stripe_index
mkdir $DIR/$tdir
- $LFS setdirstripe -i 0 -c $MDSCOUNT -t all_char \
- $DIR/$tdir/striped_dir ||
- error "set striped dir error"
+ mkdir $DIR/$tdir/normal_dir
- $LFS setdirstripe -D -c $MDSCOUNT -t all_char $DIR/$tdir/striped_dir ||
- error "set default stripe on striped dir error"
-
- stripe_count=$($LFS getdirstripe -D -c $DIR/$tdir/striped_dir)
- [ $stripe_count -eq $MDSCOUNT ] ||
- error "default stripe wrong expect $MDSCOUNT get $stripe_count"
+ test_300_check_default_striped_dir normal_dir $MDSCOUNT 1
+ test_300_check_default_striped_dir normal_dir 1 0
+ test_300_check_default_striped_dir normal_dir 2 1
+ test_300_check_default_striped_dir normal_dir 2 -1
- mkdir -p $DIR/$tdir/striped_dir/{test1,test2,test3,test4}
+ #delete default stripe information
+ echo "delete default stripeEA"
+ $LFS setdirstripe -d $DIR/$tdir/normal_dir ||
+ error "set default stripe on striped dir error"
- for dir in $(find $DIR/$tdir/striped_dir/*); do
+ mkdir -p $DIR/$tdir/normal_dir/{test1,test2,test3,test4}
+ for dir in $(find $DIR/$tdir/normal_dir/*); do
stripe_count=$($LFS getdirstripe -c $dir)
- [ $stripe_count -eq $MDSCOUNT ] ||
- error "expect $MDSCOUNT get $stripe_count for $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"
- rmdir $DIR/$tdir/striped_dir/* || error "rmdir1 failed"
- #change default stripe count to 2
- $LFS setdirstripe -D -c 2 -t all_char $DIR/$tdir/striped_dir ||
- error "set default stripe on striped dir error"
+test_300h() {
+ [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
+ local dir
+ local stripe_count
- mkdir -p $DIR/$tdir/striped_dir/{test1,test2,test3,test4}
+ mkdir $DIR/$tdir
+ $LFS setdirstripe -i 0 -c $MDSCOUNT -t all_char \
+ $DIR/$tdir/striped_dir ||
+ error "set striped dir error"
- rmdir $DIR/$tdir/striped_dir/* || error "rmdir2 failed"
+ test_300_check_default_striped_dir striped_dir $MDSCOUNT 1
+ test_300_check_default_striped_dir striped_dir 1 0
+ test_300_check_default_striped_dir striped_dir 2 1
+ test_300_check_default_striped_dir striped_dir 2 -1
- #change default stripe count to 1
- $LFS setdirstripe -D -c 1 -t all_char $DIR/$tdir/striped_dir ||
+ #delete default stripe information
+ $LFS setdirstripe -d $DIR/$tdir/striped_dir ||
error "set default stripe on striped dir error"
mkdir -p $DIR/$tdir/striped_dir/{test1,test2,test3,test4}
for dir in $(find $DIR/$tdir/striped_dir/*); do
stripe_count=$($LFS getdirstripe -c $dir)
- [ $stripe_count -eq 1 ] ||
+ [ $stripe_count -eq 0 ] ||
error "expect 1 get $stripe_count for $dir"
done
- rmdir $DIR/$tdir/striped_dir/* || error "rmdir3 failed"
}
-run_test 300g "check default striped directory for striped directory"
+run_test 300h "check default striped directory for striped directory"
-test_300h() {
+test_300i() {
[ $PARALLEL == "yes" ] && skip "skip parallel run" && return
[ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
local stripe_count
return 0
}
-run_test 300h "client handle unknown hash type striped directory"
+run_test 300i "client handle unknown hash type striped directory"
test_400a() { # LU-1606, was conf-sanity test_74
local extra_flags=''