*/
/*
* This file is part of Lustre, http://www.lustre.org/
- * Lustre is a trademark of Sun Microsystems, Inc.
*/
/**
list_for_each_entry(conn, &imp->imp_conn_list, oic_item) {
if (class_check_uuid(&conn->oic_uuid, nids[0])) {
*uuid = conn->oic_uuid;
+ spin_unlock(&imp->imp_lock);
rc = class_add_nids_to_uuid(&conn->oic_uuid, nids,
nid_count);
- break;
+ RETURN(rc);
}
}
spin_unlock(&imp->imp_lock);
revimp->imp_msghdr_flags |= MSGHDR_CKSUM_INCOMPAT18;
+ revimp->imp_connect_data = *data;
rc = sptlrpc_import_sec_adapt(revimp, req->rq_svc_ctx, &req->rq_flvr);
if (rc) {
CERROR("%s: cannot get reverse import %s security: rc = %d\n",
* processing, so we needs to allow lw_client to be connected at
* anytime, instead of only the initial connection
*/
- lw_client = (data->ocd_connect_flags & OBD_CONNECT_LIGHTWEIGHT) != 0;
+ lw_client = OCD_HAS_FLAG(data, LIGHTWEIGHT);
if (lustre_msg_get_op_flags(req->rq_reqmsg) & MSG_CONNECT_INITIAL) {
initial_conn = true;
- mds_conn = (data->ocd_connect_flags & OBD_CONNECT_MDS) != 0;
- mds_mds_conn = (data->ocd_connect_flags &
- OBD_CONNECT_MDS_MDS) != 0;
+ mds_conn = OCD_HAS_FLAG(data, MDS);
+ mds_mds_conn = OCD_HAS_FLAG(data, MDS_MDS);
/*
* OBD_CONNECT_MNE_SWAB is removed at 2.14
export = NULL;
rc = -EALREADY;
} else if ((mds_conn || (lw_client && initial_conn) ||
- data->ocd_connect_flags & OBD_CONNECT_MDS_MDS) &&
- export->exp_connection != NULL) {
+ OCD_HAS_FLAG(data, MDS_MDS)) && export->exp_connection) {
spin_unlock(&export->exp_lock);
if (req->rq_peer.nid != export->exp_connection->c_peer.nid) {
/* MDS or LWP reconnected after failover. */
LCONSOLE_WARN("%s: Received %s connection from %s, removing former export from %s\n",
target->obd_name,
- mds_conn ? "MDS" : "LWP",
+ lw_client ? "LWP" : "MDS",
libcfs_nid2str(req->rq_peer.nid),
libcfs_nid2str(export->exp_connection->c_peer.nid));
} else {
- /* New MDS connection from the same NID. */
- LCONSOLE_WARN("%s: Received new %s connection from %s, removing former export from same NID\n",
+ /* New connection from the same NID. */
+ LCONSOLE_WARN("%s: Received new %s connection from %s, %s former export from same NID\n",
target->obd_name,
- mds_conn ? "MDS" : "LWP",
- libcfs_nid2str(req->rq_peer.nid));
+ lw_client ? "LWP" : "MDS",
+ libcfs_nid2str(req->rq_peer.nid),
+ OCD_HAS_FLAG(data, MDS_MDS) ?
+ "keep" : "remove");
}
if (req->rq_peer.nid == export->exp_connection->c_peer.nid &&
- data->ocd_connect_flags & OBD_CONNECT_MDS_MDS) {
+ OCD_HAS_FLAG(data, MDS_MDS)) {
/*
* Because exports between MDTs will always be
* kept, let's do not fail such export if they
atomic_read(&obd->obd_connected_clients),
obd->obd_stale_clients,
obd->obd_stale_clients == 1 ? "was" : "were");
+ if (obd->obd_stale_clients && do_dump_on_eviction(obd))
+ libcfs_debug_dumplog();
}
ldlm_reprocess_recovery_done(obd->obd_namespace);
return;
}
obd->obd_recovering = obd->obd_abort_recovery = 0;
+ obd->obd_abort_recov_mdt = 0;
spin_unlock(&obd->obd_dev_lock);
spin_lock(&obd->obd_recovery_task_lock);
*/
spin_lock(&obd->obd_dev_lock);
obd->obd_recovering = obd->obd_abort_recovery = 0;
+ obd->obd_abort_recov_mdt = 0;
spin_unlock(&obd->obd_dev_lock);
spin_lock(&obd->obd_recovery_task_lock);
target_cancel_recovery_timer(obd);