From: Trond Myklebust Date: Sun, 18 May 2014 18:05:22 +0000 (-0400) Subject: SUNRPC: Fix a module reference leak in svc_handle_xprt X-Git-Tag: upstream/snapshot3+hdmi~2256 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7c3214d5c80afffb7b586d29033393a09ea65b73;p=platform%2Fadaptation%2Frenesas_rcar%2Frenesas_kernel.git SUNRPC: Fix a module reference leak in svc_handle_xprt commit c789102c20bbbdda6831a273e046715be9d6af79 upstream. If the accept() call fails, we need to put the module reference. Signed-off-by: Trond Myklebust Signed-off-by: J. Bruce Fields Signed-off-by: Greg Kroah-Hartman --- diff --git a/net/sunrpc/svc_xprt.c b/net/sunrpc/svc_xprt.c index 06c6ff0..a4acaf2 100644 --- 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",