From: Chuck Lever <chuck.lever-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org> To: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Subject: [PATCH v2 3/6] svcrdma: Skip put_page() when send_reply() fails Date: Mon, 22 Aug 2016 14:57:59 -0400 [thread overview] Message-ID: <20160822185759.12076.92949.stgit@klimt.1015granger.net> (raw) In-Reply-To: <20160822185459.12076.43516.stgit-Hs+gFlyCn65vLzlybtyyYzGyq/o6K9yX@public.gmane.org> Message from syslogd@klimt at Aug 18 17:00:37 ... kernel:page:ffffea0020639b00 count:0 mapcount:0 mapping: (null) index:0x0 Aug 18 17:00:37 klimt kernel: flags: 0x2fffff80000000() Aug 18 17:00:37 klimt kernel: page dumped because: VM_BUG_ON_PAGE(page_ref_count(page) == 0) Aug 18 17:00:37 klimt kernel: kernel BUG at /home/cel/src/linux/linux-2.6/include/linux/mm.h:445! Aug 18 17:00:37 klimt kernel: RIP: 0010:[<ffffffffa05c21c1>] svc_rdma_sendto+0x641/0x820 [rpcrdma] send_reply() assigns its page argument as the first page of ctxt. On error, send_reply() already invokes svc_rdma_put_context(ctxt, 1); which does a put_page() on that very page. No need to do that again as svc_rdma_sendto exits. Fixes: 3e1eeb980822 ("svcrdma: Close connection when a send error occurs") Signed-off-by: Chuck Lever <chuck.lever-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org> --- net/sunrpc/xprtrdma/svc_rdma_sendto.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/sunrpc/xprtrdma/svc_rdma_sendto.c b/net/sunrpc/xprtrdma/svc_rdma_sendto.c index e5b49e6..3b95b19 100644 --- a/net/sunrpc/xprtrdma/svc_rdma_sendto.c +++ b/net/sunrpc/xprtrdma/svc_rdma_sendto.c @@ -621,7 +621,7 @@ int svc_rdma_sendto(struct svc_rqst *rqstp) ret = send_reply(rdma, rqstp, res_page, rdma_resp, vec, inline_bytes); if (ret < 0) - goto err1; + goto err0; svc_rdma_put_req_map(rdma, vec); dprintk("svcrdma: send_reply returns %d\n", ret); -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html
WARNING: multiple messages have this Message-ID (diff)
From: Chuck Lever <chuck.lever@oracle.com> To: linux-rdma@vger.kernel.org, linux-nfs@vger.kernel.org Subject: [PATCH v2 3/6] svcrdma: Skip put_page() when send_reply() fails Date: Mon, 22 Aug 2016 14:57:59 -0400 [thread overview] Message-ID: <20160822185759.12076.92949.stgit@klimt.1015granger.net> (raw) In-Reply-To: <20160822185459.12076.43516.stgit@klimt.1015granger.net> Message from syslogd@klimt at Aug 18 17:00:37 ... kernel:page:ffffea0020639b00 count:0 mapcount:0 mapping: (null) index:0x0 Aug 18 17:00:37 klimt kernel: flags: 0x2fffff80000000() Aug 18 17:00:37 klimt kernel: page dumped because: VM_BUG_ON_PAGE(page_ref_count(page) == 0) Aug 18 17:00:37 klimt kernel: kernel BUG at /home/cel/src/linux/linux-2.6/include/linux/mm.h:445! Aug 18 17:00:37 klimt kernel: RIP: 0010:[<ffffffffa05c21c1>] svc_rdma_sendto+0x641/0x820 [rpcrdma] send_reply() assigns its page argument as the first page of ctxt. On error, send_reply() already invokes svc_rdma_put_context(ctxt, 1); which does a put_page() on that very page. No need to do that again as svc_rdma_sendto exits. Fixes: 3e1eeb980822 ("svcrdma: Close connection when a send error occurs") Signed-off-by: Chuck Lever <chuck.lever@oracle.com> --- net/sunrpc/xprtrdma/svc_rdma_sendto.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/sunrpc/xprtrdma/svc_rdma_sendto.c b/net/sunrpc/xprtrdma/svc_rdma_sendto.c index e5b49e6..3b95b19 100644 --- a/net/sunrpc/xprtrdma/svc_rdma_sendto.c +++ b/net/sunrpc/xprtrdma/svc_rdma_sendto.c @@ -621,7 +621,7 @@ int svc_rdma_sendto(struct svc_rqst *rqstp) ret = send_reply(rdma, rqstp, res_page, rdma_resp, vec, inline_bytes); if (ret < 0) - goto err1; + goto err0; svc_rdma_put_req_map(rdma, vec); dprintk("svcrdma: send_reply returns %d\n", ret);
next prev parent reply other threads:[~2016-08-22 18:57 UTC|newest] Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-08-22 18:57 [PATCH v2 0/6] server-side NFS/RDMA patches proposed for v4.9 Chuck Lever 2016-08-22 18:57 ` Chuck Lever [not found] ` <20160822185459.12076.43516.stgit-Hs+gFlyCn65vLzlybtyyYzGyq/o6K9yX@public.gmane.org> 2016-08-22 18:57 ` [PATCH v2 1/6] SUNRPC: Silence WARN_ON when NFSv4.1 over RDMA is in use Chuck Lever 2016-08-22 18:57 ` Chuck Lever [not found] ` <20160822185742.12076.34446.stgit-Hs+gFlyCn65vLzlybtyyYzGyq/o6K9yX@public.gmane.org> 2016-08-23 17:39 ` Chuck Lever 2016-08-23 17:39 ` Chuck Lever [not found] ` <3E0207D8-CFB2-4233-B92B-165B10E9920E-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org> 2016-08-23 20:53 ` J. Bruce Fields 2016-08-23 20:53 ` J. Bruce Fields [not found] ` <20160823205355.GA29452-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org> 2016-08-23 21:05 ` Chuck Lever 2016-08-23 21:05 ` Chuck Lever [not found] ` <AD25F201-01A4-4F4F-BAE7-9E984E12EE8D-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org> 2016-08-23 22:21 ` Trond Myklebust 2016-08-23 22:21 ` Trond Myklebust [not found] ` <BB84506B-BC92-4325-A81C-4BC7D39F471C-7I+n7zu2hftEKMMhf/gKZA@public.gmane.org> 2016-08-24 13:38 ` Fields Bruce James 2016-08-24 13:38 ` Fields Bruce James 2016-08-24 16:34 ` Chuck Lever 2016-08-24 16:34 ` Chuck Lever 2016-08-22 18:57 ` [PATCH v2 2/6] svcrdma: Tail iovec leaves an orphaned DMA mapping Chuck Lever 2016-08-22 18:57 ` Chuck Lever 2016-08-22 18:57 ` Chuck Lever [this message] 2016-08-22 18:57 ` [PATCH v2 3/6] svcrdma: Skip put_page() when send_reply() fails Chuck Lever 2016-08-22 18:58 ` [PATCH v2 4/6] rpcrdma: RDMA/CM private message data structure Chuck Lever 2016-08-22 18:58 ` Chuck Lever 2016-08-22 18:58 ` [PATCH v2 5/6] svcrdma: Server-side support for rpcrdma_connect_private Chuck Lever 2016-08-22 18:58 ` Chuck Lever 2016-08-22 18:58 ` [PATCH v2 6/6] svcrdma: support Remote Invalidation for prototyping Chuck Lever 2016-08-22 18:58 ` Chuck Lever
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20160822185759.12076.92949.stgit@klimt.1015granger.net \ --to=chuck.lever-qhclzuegtsvqt0dzr+alfa@public.gmane.org \ --cc=linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \ --cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.