projects
/
linux-2.6-block.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
16e4d93
)
SUNRPC: Fix a module reference leak in svc_handle_xprt
author
Trond Myklebust
<trond.myklebust@primarydata.com>
Sun, 18 May 2014 18:05:22 +0000
(14:05 -0400)
committer
J. Bruce Fields
<bfields@redhat.com>
Thu, 22 May 2014 19:57:22 +0000
(15:57 -0400)
If the accept() call fails, we need to put the module reference.
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Cc: stable@vger.kernel.org
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
net/sunrpc/svc_xprt.c
patch
|
blob
|
blame
|
history
diff --git
a/net/sunrpc/svc_xprt.c
b/net/sunrpc/svc_xprt.c
index 614956f1777e42a95b2f0d605fa4e6eeb2d8fdd2..29772e01b179c36b43062370761f3049833071b8 100644
(file)
--- a/
net/sunrpc/svc_xprt.c
+++ b/
net/sunrpc/svc_xprt.c
@@
-730,6
+730,8
@@
static int svc_handle_xprt(struct svc_rqst *rqstp, struct svc_xprt *xprt)
newxpt = xprt->xpt_ops->xpo_accept(xprt);
if (newxpt)
svc_add_new_temp_xprt(serv, newxpt);
+ else
+ module_put(xprt->xpt_class->xcl_owner);
} else if (xprt->xpt_ops->xpo_has_wspace(xprt)) {
/* XPT_DATA|XPT_DEFERRED case: */
dprintk("svc: server %p, pool %u, transport %p, inuse=%d\n",