TencentOS-kernel/net/sunrpc
Chuck Lever 0fafd0b838 svcrdma: Fix backchannel return code
[ Upstream commit ea740bd5f58e2912e74f401fd01a9d6aa985ca05 ]

Way back when I was writing the RPC/RDMA server-side backchannel
code, I misread the TCP backchannel reply handler logic. When
svc_tcp_recvfrom() successfully receives a backchannel reply, it
does not return -EAGAIN. It sets XPT_DATA and returns zero.

Update svc_rdma_recvfrom() to return zero. Here, XPT_DATA doesn't
need to be set again: it is set whenever a new message is received,
behind a spin lock in a single threaded context.

Also, if handling the cb reply is not successful, the message is
simply dropped. There's no special message framing to deal with as
there is in the TCP case.

Now that the handle_bc_reply() return value is ignored, I've removed
the dprintk call sites in the error exit of handle_bc_reply() in
favor of trace points in other areas that already report the error
cases.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-03-16 16:37:18 +08:00
..
auth_gss SUNRPC: Fix ("SUNRPC: Add "@len" parameter to gss_unwrap()") 2021-03-16 16:33:47 +08:00
xprtrdma svcrdma: Fix backchannel return code 2021-03-16 16:37:18 +08:00
Kconfig Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
Makefile Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
addr.c net: sunrpc: Fix off-by-one issues in 'rpc_ntop6' 2021-03-16 16:30:26 +08:00
auth.c Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
auth_null.c Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
auth_unix.c Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
backchannel_rqst.c Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
cache.c Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
clnt.c SUNRPC: Signalled ASYNC tasks need to exit 2021-03-16 16:27:56 +08:00
debugfs.c Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
netns.h Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
rpc_pipe.c sunrpc: fixed rollback in rpc_gssd_dummy_populate() 2021-03-16 16:31:12 +08:00
rpcb_clnt.c SUNRPC: stop printk reading past end of string 2021-03-16 16:36:13 +08:00
sched.c SUNRPC: Don't start a timer on an already queued rpc task 2021-03-16 16:37:11 +08:00
socklib.c Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
stats.c Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
sunrpc.h sunrpc: check that domain table is empty at module unload. 2021-03-16 16:32:44 +08:00
sunrpc_syms.c sunrpc: check that domain table is empty at module unload. 2021-03-16 16:32:44 +08:00
svc.c nfsd: Fix NFSv4 READ on RDMA when using readv 2021-03-16 16:33:11 +08:00
svc_xprt.c SUNRPC: Fix a potential buffer overflow in 'svc_print_xprts()' 2021-03-16 16:37:08 +08:00
svcauth.c sunrpc: check that domain table is empty at module unload. 2021-03-16 16:32:44 +08:00
svcauth_unix.c Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
svcsock.c nfsd: Fix NFSv4 READ on RDMA when using readv 2021-03-16 16:33:11 +08:00
sysctl.c Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
timer.c Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
xdr.c SUNRPC: Properly set the @subbuf parameter of xdr_buf_subsegment() 2021-03-16 16:31:12 +08:00
xprt.c Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
xprtmultipath.c Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
xprtsock.c SUNRPC: Fix backchannel RPC soft lockups 2021-03-16 16:26:59 +08:00