test_32a() {
# this test is totally useless on a client-only system
- [ -n "$CLIENTONLY" -o -n "$CLIENTMODSONLY" ] && skip "client only testing" && return 0
+ client_only && skip "client only testing" && return 0
[ "$NETTYPE" = "tcp" ] || { skip "NETTYPE != tcp" && return 0; }
[ -z "$TUNEFS" ] && skip_env "No tunefs" && return 0
test_32b() {
# this test is totally useless on a client-only system
- [ -n "$CLIENTONLY" -o -n "$CLIENTMODSONLY" ] && skip "client only testing" && return 0
+ client_only && skip "client only testing" && return 0
[ "$NETTYPE" = "tcp" ] || { skip "NETTYPE != tcp" && return 0; }
[ -z "$TUNEFS" ] && skip_env "No tunefs" && return
run_test 36 "df report consistency on OSTs with different block size"
test_37() {
- [ -n "$CLIENTONLY" -o -n "$CLIENTMODSONLY" ] && skip "client only testing" && return 0
+ client_only && skip "client only testing" && return 0
LOCAL_MDSDEV="$TMP/mdt.img"
SYM_MDSDEV="$TMP/sym_mdt.img"
cleanup_46a() {
trap 0
local rc=0
- local count=5
+ local count=$1
umount_client $MOUNT2 || rc=$?
umount_client $MOUNT || rc=$?
}
test_46a() {
- [ $OSTCOUNT -lt 5 ] && skip_env "too few OSTs" && return
+ echo "Testing with $OSTCOUNT OSTs"
reformat
start_mds || return 1
#first client should see only one ost
wait_osc_import_state mds ost FULL
#start_client
mount_client $MOUNT || return 3
- trap cleanup_46a EXIT ERR
-
- start_ost2 || return 4
- start ost3 `ostdevname 3` $OST_MOUNT_OPTS || return 5
- start ost4 `ostdevname 4` $OST_MOUNT_OPTS || return 6
- start ost5 `ostdevname 5` $OST_MOUNT_OPTS || return 7
- # wait until ost2-5 is sync
- # ping_interval + 1
- wait_osc_import_state mds ost2 FULL
- wait_osc_import_state mds ost3 FULL
- wait_osc_import_state mds ost4 FULL
- wait_osc_import_state mds ost5 FULL
+ trap "cleanup_46a $OSTCOUNT" EXIT ERR
+
+ local i
+ for (( i=2; i<=$OSTCOUNT; i++ )); do
+ start ost$i `ostdevname $i` $OST_MOUNT_OPTS || return $((i+2))
+ done
+
+ # wait until osts in sync
+ for (( i=2; i<=$OSTCOUNT; i++ )); do
+ wait_osc_import_state mds ost$i FULL
+ done
+
+
#second client see all ost's
mount_client $MOUNT2 || return 8
# will be deadlock
stat $MOUNT/widestripe || return 12
- cleanup_46a || { echo "cleanup_46a failed!" && return 13; }
+ cleanup_46a $OSTCOUNT || { echo "cleanup_46a failed!" && return 13; }
return 0
}
run_test 46a "handle ost additional - wide striped file"