linux_dsm_epyc7002/net/sunrpc
Tom Tucker d5b31be682 rdma: SVCRDMA recvfrom
This file implements the RDMA transport recvfrom function. The function
dequeues work reqeust completion contexts from an I/O list that it shares
with the I/O tasklet in svc_rdma_transport.c. For ONCRPC RDMA, an RPC may
not be complete when it is received. Instead, the RDMA header that precedes
the RPC message informs the transport where to get the RPC data from on
the client and where to place it in the RPC message before it is delivered
to the server. The svc_rdma_recvfrom function therefore, parses this RDMA
header and issues any necessary RDMA operations to fetch the remainder of
the RPC from the client.

Special handling is required when the request involves an RDMA_READ.
In this case, recvfrom submits the RDMA_READ requests to the underlying
transport driver and then returns 0. When the transport
completes the last RDMA_READ for the request, it enqueues it on a
read completion queue and enqueues the transport. The recvfrom code
favors this queue over the regular DTO queue when satisfying reads.

Signed-off-by: Tom Tucker <tom@opengridcomputing.com>
Acked-by: Neil Brown <neilb@suse.de>
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
2008-02-01 16:42:14 -05:00
..
auth_gss svcrpc: ensure gss DESTROY tokens free contexts from cache 2008-02-01 16:42:07 -05:00
xprtrdma rdma: SVCRDMA recvfrom 2008-02-01 16:42:14 -05:00
auth_null.c SUNRPC: cleanup rpc credential cache garbage collection 2007-07-10 23:40:35 -04:00
auth_unix.c SUNRPC: Remove the tk_auth macro... 2007-07-10 23:40:37 -04:00
auth.c Merge branch 'task_killable' of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc 2008-02-01 11:45:47 +11:00
cache.c knfsd: allow cache_register to return error on failure 2008-02-01 16:42:05 -05:00
clnt.c Merge branch 'task_killable' of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc 2008-02-01 11:45:47 +11:00
Makefile svc: Add an svc transport class 2008-02-01 16:42:07 -05:00
rpc_pipe.c SUNRPC: Remove an unneeded implicit type cast when calling rpc_depopulate() 2008-01-30 02:05:43 -05:00
rpcb_clnt.c Merge branch 'task_killable' of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc 2008-02-01 11:45:47 +11:00
sched.c Merge branch 'task_killable' of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc 2008-02-01 11:45:47 +11:00
socklib.c SUNRPC: temp var should match return type of xdr_skb_read_actor 2008-01-30 02:05:43 -05:00
stats.c SUNRPC: Restrict sunrpc client exports 2008-01-30 02:05:28 -05:00
sunrpc_syms.c svc: Change services to use new svc_create_xprt service 2008-02-01 16:42:09 -05:00
svc_xprt.c svc: Add svc_xprt_names service to replace svc_sock_names 2008-02-01 16:42:14 -05:00
svc.c svc: Make close transport independent 2008-02-01 16:42:11 -05:00
svcauth_unix.c svc: Move the authinfo cache to svc_xprt. 2008-02-01 16:42:12 -05:00
svcauth.c Fix occurrences of "the the " 2007-05-09 08:57:56 +02:00
svcsock.c svc: Add transport hdr size for defer/revisit 2008-02-01 16:42:13 -05:00
sysctl.c svc: Add /proc/sys/sunrpc/transport files 2008-02-01 16:42:13 -05:00
timer.c SUNRPC: add EXPORT_SYMBOL_GPL for generic transport functions 2007-10-09 17:17:36 -04:00
xdr.c SUNRPC: Use unsigned string lengths in xdr_decode_string_inplace 2008-02-01 16:42:02 -05:00
xprt.c SUNRPC: Add support for per-client timeout values 2008-01-30 02:05:59 -05:00
xprtsock.c SUNRPC: Clean up functions that free address_strings array 2008-01-30 02:06:08 -05:00