eval export ${facet}failover_dev=$device
fi
- local mntpt=$(facet_mntpt $facet)
- do_facet ${facet} mkdir -p $mntpt
- eval export ${facet}_MOUNT=$mntpt
- mount_facet ${facet}
- RC=$?
- return $RC
+ local mntpt=$(facet_mntpt $facet)
+ do_facet ${facet} mkdir -p $mntpt
+ eval export ${facet}_MOUNT=$mntpt
+ mount_facet ${facet}
+ RC=$?
+
+ if [[ $facet == mds* ]]; then
+ do_facet $facet \
+ lctl set_param -n mdt.${FSNAME}*.enable_remote_dir=1 \
+ 2>/dev/null
+ fi
+
+ return $RC
}
stop() {
! client_up $1
}
-client_reconnect() {
+client_reconnect_try() {
uname -n >> $MOUNT/recon
if [ -z "$CLIENTS" ]; then
df $MOUNT; uname -n >> $MOUNT/recon
rm $MOUNT/recon
}
+client_reconnect() {
+ # one client_reconnect_try call does not always do the job...
+ while true ; do
+ client_reconnect_try && break
+ sleep 1
+ done
+}
+
affected_facets () {
local facet=$1
set_flavor_all $SEC
fi
+ #Enable remote MDT create for testing
+ for num in $(seq $MDSCOUNT); do
+ do_facet mds$num \
+ lctl set_param -n mdt.${FSNAME}*.enable_remote_dir=1 \
+ 2>/dev/null
+ done
+
if [ "$ONLY" == "setup" ]; then
exit 0
fi
drop_reply() {
# OBD_FAIL_MDS_ALL_REPLY_NET
- RC=0
- do_facet $SINGLEMDS lctl set_param fail_loc=0x122
- do_facet client "$@" || RC=$?
- do_facet $SINGLEMDS lctl set_param fail_loc=0
- return $RC
+ RC=0
+ do_facet $SINGLEMDS $LCTL set_param fail_loc=0x122
+ eval "$@" || RC=$?
+ do_facet $SINGLEMDS $LCTL set_param fail_loc=0
+ return $RC
}
drop_reint_reply() {
# OBD_FAIL_MDS_REINT_NET_REP
- RC=0
- do_facet $SINGLEMDS lctl set_param fail_loc=0x119
- do_facet client "$@" || RC=$?
- do_facet $SINGLEMDS lctl set_param fail_loc=0
- return $RC
+ RC=0
+ do_facet $SINGLEMDS $LCTL set_param fail_loc=0x119
+ eval "$@" || RC=$?
+ do_facet $SINGLEMDS $LCTL set_param fail_loc=0
+ return $RC
}
drop_update_reply() {
drop_ldlm_reply() {
#define OBD_FAIL_LDLM_REPLY 0x30c
RC=0
- do_facet $SINGLEMDS lctl set_param fail_loc=0x30c
+ local list=$(comma_list $(mdts_nodes) $(osts_nodes))
+ do_nodes $list lctl set_param fail_loc=0x30c
+
do_facet client "$@" || RC=$?
- do_facet $SINGLEMDS lctl set_param fail_loc=0
+
+ do_nodes $list lctl set_param fail_loc=0
+ return $RC
+}
+
+drop_ldlm_reply_once() {
+#define OBD_FAIL_LDLM_REPLY 0x30c
+ RC=0
+ local list=$(comma_list $(mdts_nodes) $(osts_nodes))
+ do_nodes $list lctl set_param fail_loc=0x8000030c
+
+ do_facet client "$@" || RC=$?
+
+ do_nodes $list lctl set_param fail_loc=0
return $RC
}
lctl set_param ldlm.namespaces.*$1*.lru_size $(default_lru_size)
}
+flock_is_enabled()
+{
+ local RC=0
+ [ -z "$(mount | grep "$MOUNT.*flock" | grep -v noflock)" ] && RC=1
+ return $RC
+}
+
pgcache_empty() {
local FILE
for FILE in `lctl get_param -N "llite.*.dump_page_cache"`; do
reset_fail_loc () {
echo -n "Resetting fail_loc on all nodes..."
- do_nodes $(comma_list $(nodes_list)) "lctl set_param -n fail_loc=0 2>/dev/null || true"
+ do_nodes $(comma_list $(nodes_list)) "lctl set_param -n fail_loc=0 \
+ fail_val=0 2>/dev/null || true"
echo done.
}
[ $fd -lt $max_fd ] || error "finding free file descriptor failed"
echo $fd
}
+
+check_mount_and_prep()
+{
+ is_mounted $MOUNT || setupall
+
+ rm -rf $DIR/[df][0-9]* || error "Fail to cleanup the env!"
+ mkdir $DIR/$tdir || error "Fail to mkdir $DIR/$tdir."
+}
+
+# calcule how many ost-objects to be created.
+precreated_ost_obj_count()
+{
+ local mdt_idx=$1
+ local ost_idx=$2
+ local mdt_name="MDT$(printf '%04x' $mdt_idx)"
+ local ost_name="OST$(printf '%04x' $ost_idx)"
+ local proc_path="${FSNAME}-${ost_name}-osc-${mdt_name}"
+ local last_id=$(do_facet mds${mdt_idx} lctl get_param -n \
+ osp.$proc_path.prealloc_last_id)
+ local next_id=$(do_facet mds${mdt_idx} lctl get_param -n \
+ osp.$proc_path.prealloc_next_id)
+
+ echo $((last_id - next_id + 1))
+}