aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTom Tucker <tom@opengridcomputing.com>2008-04-24 15:17:21 -0400
committerTom Tucker <tom@opengridcomputing.com>2008-05-19 08:33:46 -0400
commit120693d12cde0cc735d784c951b53381efec918f (patch)
tree99e5cb62caab24de1b89ee82280de8eeae1ceb20
parent9d6347acd2134373c3a4c65a4d43e4f1d59aa012 (diff)
svcrdma: Add put of connection ESTABLISHED reference in rdma_cma_handler
The svcrdma transport takes a reference when it gets the ESTABLISHED event from the provider. This reference is supposed to be removed when the DISCONNECT event is received, however, the call to svc_xprt_put was missing in the switch statement. This results in the memory associated with the transport never being freed. Signed-off-by: Tom Tucker <tom@opengridcomputing.com>
-rw-r--r--net/sunrpc/xprtrdma/svc_rdma_transport.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/net/sunrpc/xprtrdma/svc_rdma_transport.c b/net/sunrpc/xprtrdma/svc_rdma_transport.c
index 17f036b23a96..4bf8b5ad1675 100644
--- a/net/sunrpc/xprtrdma/svc_rdma_transport.c
+++ b/net/sunrpc/xprtrdma/svc_rdma_transport.c
@@ -630,6 +630,7 @@ static int rdma_cma_handler(struct rdma_cm_id *cma_id,
630 if (xprt) { 630 if (xprt) {
631 set_bit(XPT_CLOSE, &xprt->xpt_flags); 631 set_bit(XPT_CLOSE, &xprt->xpt_flags);
632 svc_xprt_enqueue(xprt); 632 svc_xprt_enqueue(xprt);
633 svc_xprt_put(xprt);
633 } 634 }
634 break; 635 break;
635 case RDMA_CM_EVENT_DEVICE_REMOVAL: 636 case RDMA_CM_EVENT_DEVICE_REMOVAL: