diff options
author | Tom Tucker <tom@opengridcomputing.com> | 2008-04-24 14:17:21 -0500 |
---|---|---|
committer | Tom Tucker <tom@opengridcomputing.com> | 2008-05-19 07:33:46 -0500 |
commit | 120693d12cde0cc735d784c951b53381efec918f (patch) | |
tree | 99e5cb62caab24de1b89ee82280de8eeae1ceb20 | |
parent | 9d6347acd2134373c3a4c65a4d43e4f1d59aa012 (diff) | |
download | lwn-120693d12cde0cc735d784c951b53381efec918f.tar.gz lwn-120693d12cde0cc735d784c951b53381efec918f.zip |
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.c | 1 |
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, if (xprt) { set_bit(XPT_CLOSE, &xprt->xpt_flags); svc_xprt_enqueue(xprt); + svc_xprt_put(xprt); } break; case RDMA_CM_EVENT_DEVICE_REMOVAL: |