From patchwork Sat Jan 22 21:40:20 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jesper Juhl X-Patchwork-Id: 498431 X-Patchwork-Delegate: Trond.Myklebust@netapp.com Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter1.kernel.org (8.14.4/8.14.3) with ESMTP id p0MLeioc010882 for ; Sat, 22 Jan 2011 21:40:44 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751790Ab1AVVjv (ORCPT ); Sat, 22 Jan 2011 16:39:51 -0500 Received: from swampdragon.chaosbits.net ([90.184.90.115]:25788 "EHLO swampdragon.chaosbits.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750910Ab1AVVju (ORCPT ); Sat, 22 Jan 2011 16:39:50 -0500 Received: by swampdragon.chaosbits.net (Postfix, from userid 1000) id E73809403F; Sat, 22 Jan 2011 22:40:20 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by swampdragon.chaosbits.net (Postfix) with ESMTP id DC98A9403B; Sat, 22 Jan 2011 22:40:20 +0100 (CET) Date: Sat, 22 Jan 2011 22:40:20 +0100 (CET) From: Jesper Juhl To: linux-nfs@vger.kernel.org cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Pavel Emelyanov , Chuck Lever , Tejun Heo , Tom Tucker , "David S. Miller" , Trond Myklebust , Neil Brown , "J. Bruce Fields" Subject: [PATCH] SUNRPC: Remove resource leak in svc_rdma_send_error() Message-ID: User-Agent: Alpine 2.00 (LNX 1167 2008-08-23) MIME-Version: 1.0 Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.6 (demeter1.kernel.org [140.211.167.41]); Sat, 22 Jan 2011 21:41:07 +0000 (UTC) diff --git a/net/sunrpc/xprtrdma/svc_rdma_transport.c b/net/sunrpc/xprtrdma/svc_rdma_transport.c index 9df1ead..1a10dcd 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);