Whamcloud - gitweb
* Fix for 5998: LASSERT(kibnal_peer_active(peer))
authoreeb <eeb>
Thu, 31 Mar 2005 10:33:38 +0000 (10:33 +0000)
committereeb <eeb>
Thu, 31 Mar 2005 10:33:38 +0000 (10:33 +0000)
lnet/klnds/iiblnd/iiblnd_cb.c
lnet/klnds/openiblnd/openiblnd_cb.c
lnet/klnds/viblnd/viblnd_cb.c

index c3142a1..b9ca677 100644 (file)
@@ -1777,9 +1777,9 @@ kibnal_close_conn_locked (kib_conn_t *conn, int error)
                 atomic_inc (&conn->ibc_refcount);
         }
         
-        if (list_empty (&peer->ibp_conns) &&
-            peer->ibp_persistence == 0) {
-                /* Non-persistent peer with no more conns... */
+        if (list_empty (&peer->ibp_conns) &&    /* no more conns */
+            peer->ibp_persistence == 0 &&       /* non-persistent peer */
+            kibnal_peer_active(peer)) {         /* still in peer table */
                 kibnal_unlink_peer_locked (peer);
         }
 
index c2929ba..0f7a371 100644 (file)
@@ -1484,9 +1484,9 @@ kibnal_close_conn_locked (kib_conn_t *conn, int error)
                 atomic_inc (&conn->ibc_refcount);
         }
         
-        if (list_empty (&peer->ibp_conns) &&
-            peer->ibp_persistence == 0) {
-                /* Non-persistent peer with no more conns... */
+        if (list_empty (&peer->ibp_conns) &&    /* no more conns */
+            peer->ibp_persistence == 0 &&       /* non-persistent peer */
+            kibnal_peer_active(peer)) {         /* still in peer table */
                 kibnal_unlink_peer_locked (peer);
         }
 
index c3f496c..ba021bf 100644 (file)
@@ -1772,9 +1772,9 @@ kibnal_close_conn_locked (kib_conn_t *conn, int error)
         /* connd takes ibc_list's ref */
         list_del (&conn->ibc_list);
         
-        if (list_empty (&peer->ibp_conns) &&
-            peer->ibp_persistence == 0) {
-                /* Non-persistent peer with no more conns... */
+        if (list_empty (&peer->ibp_conns) &&    /* no more conns */
+            peer->ibp_persistence == 0 &&       /* non-persistent peer */
+            kibnal_peer_active(peer)) {         /* still in peer table */
                 kibnal_unlink_peer_locked (peer);
         }