Re: [PATCH] SUNRPC: Fix XPT_BUSY flag leakage in svc_handle_xprt()...
From: Chuck Lever III <chuck.lever@oracle.com>
Date: 2021-08-25 19:51:54
From: Chuck Lever III <chuck.lever@oracle.com>
Date: 2021-08-25 19:51:54
On Aug 25, 2021, at 3:33 PM, trondmy@gmail.com wrote: From: Trond Myklebust <redacted> If the attempt to reserve a slot fails, we currently leak the XPT_BUSY flag on the socket. Among other things, this make it impossible to close the socket. Fixes: 82011c80b3ec ("SUNRPC: Move svc_xprt_received() call sites") Signed-off-by: Trond Myklebust <redacted> --- net/sunrpc/svc_xprt.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)diff --git a/net/sunrpc/svc_xprt.c b/net/sunrpc/svc_xprt.c index 5f0d33ca4bdb..b3cff4077899 100644 --- a/net/sunrpc/svc_xprt.c +++ b/net/sunrpc/svc_xprt.c@@ -975,7 +975,8 @@ static int svc_handle_xprt(struct svc_rqst *rqstp, struct svc_xprt *xprt)rqstp->rq_stime = ktime_get(); rqstp->rq_reserved = serv->sv_max_mesg; atomic_add(rqstp->rq_reserved, &xprt->xpt_reserved); - } + } else + svc_xprt_received(xprt); out: trace_svc_handle_xprt(xprt, len); return len; -- 2.31.1
Looks correct. Bruce, perhaps you should pull this for 5.14-rc. Linus says he expects to release 5.14-final this Sunday, fyi. -- Chuck Lever