summaryrefslogtreecommitdiff
path: root/net/sunrpc/svc.c
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2012-05-31 15:26:38 -0400
committerTrond Myklebust <Trond.Myklebust@netapp.com>2012-05-31 15:32:16 -0400
commitb3b02ae5865c2dcd506322e0fc6def59a042e72f (patch)
treec66f7f7e5da748f9deb248666a595433ce93fea4 /net/sunrpc/svc.c
parent2d117403b30cd7301af60d7d54b279a9f566d10d (diff)
downloadlinux-stable-b3b02ae5865c2dcd506322e0fc6def59a042e72f.tar.gz
linux-stable-b3b02ae5865c2dcd506322e0fc6def59a042e72f.tar.bz2
linux-stable-b3b02ae5865c2dcd506322e0fc6def59a042e72f.zip
NFSv4.1: Fix a request leak on the back channel
If the call to svc_process_common() fails, then the request needs to be freed before we can exit bc_svc_process. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com> Cc: stable@vger.kernel.org
Diffstat (limited to 'net/sunrpc/svc.c')
-rw-r--r--net/sunrpc/svc.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/sunrpc/svc.c b/net/sunrpc/svc.c
index 017c0117d154..074df5a564db 100644
--- a/net/sunrpc/svc.c
+++ b/net/sunrpc/svc.c
@@ -1377,7 +1377,8 @@ bc_svc_process(struct svc_serv *serv, struct rpc_rqst *req,
sizeof(req->rq_snd_buf));
return bc_send(req);
} else {
- /* Nothing to do to drop request */
+ /* drop request */
+ xprt_free_bc_request(req);
return 0;
}
}