Whamcloud - gitweb
Branch HEAD
[fs/lustre-release.git] / lnet / klnds / o2iblnd / o2iblnd_cb.c
index c03526b..9be28ad 100644 (file)
@@ -2724,6 +2724,8 @@ kiblnd_cm_callback(struct rdma_cm_id *cmid, struct rdma_cm_event *event)
 
        switch (event->event) {
        default:
+                CERROR("Unexpected event: %d, status: %d\n",
+                       event->event, event->status);
                 LBUG();
 
        case RDMA_CM_EVENT_CONNECT_REQUEST:
@@ -2852,6 +2854,11 @@ kiblnd_cm_callback(struct rdma_cm_id *cmid, struct rdma_cm_event *event)
                 /* net keeps its ref on conn! */
                 return 0;
 
+#ifdef HAVE_OFED_RDMA_CMEV_TIMEWAIT_EXIT
+        case RDMA_CM_EVENT_TIMEWAIT_EXIT:
+                CDEBUG(D_NET, "Ignore TIMEWAIT_EXIT event\n");
+                return 0;
+#endif
        case RDMA_CM_EVENT_DISCONNECTED:
                 conn = (kib_conn_t *)cmid->context;
                 if (conn->ibc_state < IBLND_CONN_ESTABLISHED) {
@@ -2862,6 +2869,7 @@ kiblnd_cm_callback(struct rdma_cm_id *cmid, struct rdma_cm_event *event)
                         kiblnd_close_conn(conn, 0);
                 }
                 kiblnd_conn_decref(conn);
+                cmid->context = NULL;
                 return 0;
 
         case RDMA_CM_EVENT_DEVICE_REMOVAL:
@@ -2871,6 +2879,12 @@ kiblnd_cm_callback(struct rdma_cm_id *cmid, struct rdma_cm_event *event)
                 /* Can't remove network from underneath LNET for now, so I have
                  * to ignore this */
                 return 0;
+
+#ifdef HAVE_OFED_RDMA_CMEV_ADDRCHANGE
+        case RDMA_CM_EVENT_ADDR_CHANGE:
+                LCONSOLE_INFO("Physical link changed (eg hca/port)\n");
+                return 0;
+#endif
         }
 }