return rc;
}
-void
+static void
kiblnd_connect_peer (kib_peer_t *peer)
{
struct rdma_cm_id *cmid;
{
kib_peer_t *peer = conn->ibc_peer;
char *reason;
- int retry_now = 0;
+ int retry = 0;
unsigned long flags;
LASSERT (conn->ibc_state == IBLND_CONN_ACTIVE_CONNECT);
peer->ibp_version != version) &&
peer->ibp_connecting == 1 &&
peer->ibp_accepting == 0) {
- if (why == IBLND_REJECT_CONN_RACE) {
- /* don't reconnect immediately, intensive reconnecting
- * may consume a lot of memory. kiblnd_destroy_conn
- * will reconnect after releasing all resources of
- * this connection */
- conn->ibc_conn_race = 1;
- } else {
- retry_now = 1;
- }
+ retry = 1;
peer->ibp_connecting++;
peer->ibp_version = version;
peer->ibp_incarnation = incarnation;
write_unlock_irqrestore(&kiblnd_data.kib_global_lock, flags);
- if (!retry_now)
+ if (!retry)
return;
switch (why) {
reason = "stale";
break;
+ case IBLND_REJECT_CONN_RACE:
+ reason = "conn race";
+ break;
+
case IBLND_REJECT_CONN_UNCOMPAT:
reason = "version negotiation";
break;