linux-stable/net/sunrpc/xprtrdma
Chuck Lever 6625d09137 svcrdma: Do not add XDR padding to xdr_buf page vector
An xdr_buf has a head, a vector of pages, and a tail. Each
RPC request is presented to the NFS server contained in an
xdr_buf.

The RDMA transport would like to supply the NFS server with only
the NFS WRITE payload bytes in the page vector. In some common
cases, that would allow the NFS server to swap those pages right
into the target file's page cache.

Have the transport's RDMA Read logic put XDR pad bytes in the tail
iovec, and not in the pages that hold the data payload.

The NFSv3 WRITE XDR decoder is finicky about the lengths involved,
so make sure it is looking in the correct places when computing
the total length of the incoming NFS WRITE request.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
2016-05-13 15:53:05 -04:00
..
backchannel.c xprtrdma: rpcrdma_bc_receive_call() should init rq_private_buf.len 2016-02-17 10:23:52 -05:00
fmr_ops.c xprtrdma: Use an anonymous union in struct rpcrdma_mw 2016-03-14 14:56:06 -04:00
frwr_ops.c xprtrdma: Use new CQ API for RPC-over-RDMA client send CQs 2016-03-14 14:56:08 -04:00
Makefile svcrdma: Add class for RDMA backwards direction transport 2016-01-19 15:30:48 -05:00
module.c rpcrdma: Merge svcrdma and xprtrdma modules into one 2015-06-04 16:56:02 -04:00
physical_ops.c xprtrdma: Clean up physical_op_map() 2016-03-14 14:55:47 -04:00
rpc_rdma.c xprtrdma: Serialize credit accounting again 2016-03-14 14:56:01 -04:00
svc_rdma.c svcrdma: Define maximum number of backchannel requests 2016-01-19 15:30:48 -05:00
svc_rdma_backchannel.c svcrdma: Use new CQ API for RPC-over-RDMA server send CQs 2016-03-01 13:06:43 -08:00
svc_rdma_marshal.c svcrdma: Hook up the logic to return ERR_CHUNK 2016-03-01 13:06:40 -08:00
svc_rdma_recvfrom.c svcrdma: Do not add XDR padding to xdr_buf page vector 2016-05-13 15:53:05 -04:00
svc_rdma_sendto.c svcrdma: Use new CQ API for RPC-over-RDMA server send CQs 2016-03-01 13:06:43 -08:00
svc_rdma_transport.c svcrdma: Support IPv6 with NFS/RDMA 2016-05-13 15:53:05 -04:00
transport.c Initial roundup of 4.5 merge window patches 2016-01-23 18:45:06 -08:00
verbs.c xprtrdma: Use new CQ API for RPC-over-RDMA client send CQs 2016-03-14 14:56:08 -04:00
xprt_rdma.h xprtrdma: Use new CQ API for RPC-over-RDMA client send CQs 2016-03-14 14:56:08 -04:00