Chuck Lever 2fcc213a18 xprtrdma: Fix large NFS SYMLINK calls
Repair how rpcrdma_marshal_req() chooses which RDMA message type
to use for large non-WRITE operations so that it picks RDMA_NOMSG
in the correct situations, and sets up the marshaling logic to
SEND only the RPC/RDMA header.

Large NFSv2 SYMLINK requests now use RDMA_NOMSG calls. The Linux NFS
server XDR decoder for NFSv2 SYMLINK does not handle having the
pathname argument arrive in a separate buffer. The decoder could be
fixed, but this is simpler and RDMA_NOMSG can be used in a variety
of other situations.

Ensure that the Linux client continues to use "RDMA_MSG + read
list" when sending large NFSv3 SYMLINK requests, which is more
efficient than using RDMA_NOMSG.

Large NFSv4 CREATE(NF4LNK) requests are changed to use "RDMA_MSG +
read list" just like NFSv3 (see Section 5 of RFC 5667). Before,
these did not work at all.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Tested-by: Devesh Sharma <devesh.sharma@avagotech.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
2015-08-05 16:21:28 -04:00
..
2015-04-23 15:16:27 -04:00
2015-04-26 17:33:59 -07:00
2015-07-28 09:37:44 -07:00
2015-04-23 15:16:14 -04:00
2015-02-03 11:06:34 -08:00
2015-06-02 08:55:28 -04:00
2015-04-23 15:16:14 -04:00
2015-07-28 09:37:44 -07:00
2015-04-23 15:16:14 -04:00
2015-01-30 20:43:30 -05:00
2015-04-23 15:16:27 -04:00
2015-04-26 17:33:59 -07:00
2015-07-28 09:37:44 -07:00