LPROC_SEQ_FOPS_RO_TYPE(mgs, hash);
LPROC_SEQ_FOPS_WR_ONLY(mgs, evict_client);
LPROC_SEQ_FOPS_RW_TYPE(mgs, ir_timeout);
+LPROC_SEQ_FOPS_RW_TYPE(mgs, nid_stats_clear);
static struct lprocfs_vars lprocfs_mgs_obd_vars[] = {
{ .name = "hash_stats",
obd->obd_proc_exports_entry = NULL;
GOTO(out, rc);
}
+ if (obd->obd_proc_exports_entry)
+ lprocfs_add_simple(obd->obd_proc_exports_entry, "clear",
+ obd, &mgs_nid_stats_clear_fops);
rc = sysfs_create_link(&obd->obd_kset.kobj, &mgs->mgs_bottom->dd_kobj,
"osd");
local net2=${NETTYPE}999
local mdsnid=$(do_facet mds1 $LCTL list_nids | head -1)
local addr1=${mdsnid%@*}
+ local nid2=${addr}@$net2
local addr2 failover_mds1
export LNETCTL=$(which lnetctl 2> /dev/null)
umount_client $MOUNT || error "umount $MOUNT failed"
fi
+ do_facet mgs "$LCTL set_param mgs.MGS.exports.clear=clear"
+ do_nodes $(comma_list $(mdts_nodes) $(osts_nodes)) \
+ "$LCTL set_param *.${FSNAME}*.exports.clear=clear"
+
# check exports on servers are empty for client
+ wait_update_facet_cond mgs \
+ "$LCTL get_param -N mgs.MGS.exports.* | grep $nid |
+ cut -d'.' -f4-" '!=' $nid
+ for node in $(mdts_nodes) $(osts_nodes); do
+ wait_update_cond $node \
+ "$LCTL get_param -N *.${FSNAME}*.exports | grep $nid |
+ cut -d'.' -f4-" '!=' $nid
+ done
do_facet mgs "lctl get_param *.MGS*.exports.*.export"
do_facet mgs "lctl get_param -n *.MGS*.exports.'$nid'.uuid 2>/dev/null |
grep -q -" && error "export on MGS should be empty"
[ $? -ne 0 ] || error "export for $nid on MGS should not exist"
do_facet mgs \
- "lctl get_param -n *.MGS*.exports.'${addr}@$net2'.uuid \
+ "lctl get_param -n *.MGS*.exports.'$nid2'.uuid \
2>/dev/null | grep -"
[ $? -eq 0 ] ||
- error "export for ${addr}@$net2 on MGS should exist"
+ error "export for $nid2 on MGS should exist"
# check {mdc,osc} imports
lctl get_param mdc.${FSNAME}-*.import | grep current_connection |
# unmount client
zconf_umount $HOSTNAME $MOUNT || error "unable to umount client"
+ do_facet mgs "$LCTL set_param mgs.MGS.exports.clear=clear"
+ do_nodes $(comma_list $(mdts_nodes) $(osts_nodes)) \
+ "$LCTL set_param *.${FSNAME}*.exports.clear=clear"
+
+ wait_update_facet_cond mgs \
+ "$LCTL get_param -N mgs.MGS.exports.* | grep $nid2 |
+ cut -d'.' -f4-" '!=' $nid2
+ for node in $(mdts_nodes) $(osts_nodes); do
+ wait_update_cond $node \
+ "$LCTL get_param -N *.${FSNAME}*.exports | grep $nid2 |
+ cut -d'.' -f4-" '!=' $nid2
+ done
+ do_facet mgs "lctl get_param *.MGS*.exports.*.export"
+
# on client, configure LNet and turn LNet Dynamic Discovery on (default)
$LUSTRE_RMMOD || error "$LUSTRE_RMMOD failed (2)"
load_modules || error "Failed to load modules"