diff options
author | Jesper Juhl <jj@chaosbits.net> | 2011-01-22 22:40:20 +0100 |
---|---|---|
committer | J. Bruce Fields <bfields@redhat.com> | 2011-03-17 19:38:03 +0100 |
commit | 4be34b9d69c97211ff4eb00d79078f3c1593804d (patch) | |
tree | 2e6b53f9b195829a7f02ea4b834b817f568426f3 /net | |
parent | nfsd: wrong index used in inner loop (diff) | |
download | linux-4be34b9d69c97211ff4eb00d79078f3c1593804d.tar.xz linux-4be34b9d69c97211ff4eb00d79078f3c1593804d.zip |
SUNRPC: Remove resource leak in svc_rdma_send_error()
We leak the memory allocated to 'ctxt' when we return after
'ib_dma_mapping_error()' returns !=0.
Signed-off-by: Jesper Juhl <jj@chaosbits.net>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'net')
-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 9df1eadc912a..1a10dcd999ea 100644 --- a/net/sunrpc/xprtrdma/svc_rdma_transport.c +++ b/net/sunrpc/xprtrdma/svc_rdma_transport.c @@ -1335,6 +1335,7 @@ void svc_rdma_send_error(struct svcxprt_rdma *xprt, struct rpcrdma_msg *rmsgp, p, 0, length, DMA_FROM_DEVICE); if (ib_dma_mapping_error(xprt->sc_cm_id->device, ctxt->sge[0].addr)) { put_page(p); + svc_rdma_put_context(ctxt, 1); return; } atomic_inc(&xprt->sc_dma_used); |