svcrdma: Add back svc_rdma_recv_ctxt::rc_pages
authorChuck Lever <chuck.lever@oracle.com>
Mon, 18 Dec 2023 22:31:48 +0000 (17:31 -0500)
committerChuck Lever <chuck.lever@oracle.com>
Sun, 7 Jan 2024 22:54:32 +0000 (17:54 -0500)
commit4d9d69db898d05bd063548eee65d16a020676fec
treea759ef4d5f240b49c1fed652ffd58ecade169b0e
parentfc2e69db82c1ac506cd7f539a3ab66d51d3380dc
svcrdma: Add back svc_rdma_recv_ctxt::rc_pages

Having an nfsd thread waiting for an RDMA Read completion is
problematic if the Read responder (the client) stops responding. We
need to go back to handling RDMA Reads by allowing the nfsd thread
to return to the svc scheduler, then waking a second thread finish
the RPC message once the Read completion fires.

To start with, restore the rc_pages field so that RDMA Read pages
can be managed across calls to svc_rdma_recvfrom().

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
include/linux/sunrpc/svc_rdma.h
net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
net/sunrpc/xprtrdma/svc_rdma_rw.c