DAPL automatically calls rdma_disconnect() when a disconnect request is
received.  If the user also calls disconnect, that calls rdma_disconnect() as
well, but the connection has already been disconnected by DAPL and is no longer
valid.  The result is that the user's call to rdma_disconnect() will fail.  Do
not display an error message if this occurs.

Locking could be added to prevent calling rdma_disconnect() multiple times, but
since the librdmacm provides synchronization to trap this, we might as well take
advantage of it.

Signed-off-by: Sean Hefty <[email protected]>
---
The print is annoying in that it shows up during normal execution when running
the debug version of the library.  This should be a fairly harmless change, but
one that would be nice for winof 2.1.

Index: ulp/dapl2/dapl/openib_cma/cm.c
===================================================================
--- ulp/dapl2/dapl/openib_cma/cm.c      (revision 2342)
+++ ulp/dapl2/dapl/openib_cma/cm.c      (working copy)
@@ -644,11 +644,7 @@
                return DAT_SUCCESS;
 
        /* no graceful half-pipe disconnect option */
-       ret = rdma_disconnect(conn->cm_id);
-       if (ret)
-               dapl_dbg_log(DAPL_DBG_TYPE_ERR,
-                            " disconnect: ID %p ret 0x%x\n",
-                            ep_ptr->cm_handle, ret);
+       rdma_disconnect(conn->cm_id);
 
        /* 
         * DAT event notification occurs from the callback

Attachment: dapl-disc.diff
Description: Binary data

_______________________________________________
ofw mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw

Reply via email to