Hey Bruce- Here's the part of the RFC patch series I recently sent out that is likely to be ready for the v5.7 merge window. These need a little more soak-time. Please review them and let me know if there's something terribly objectionable. Again, the direction of the larger series is eventual support for the server's RPC/RDMA transport to deal correctly with multiple Write chunks in an RPC. Today the server transport supports only one Write chunk per RPC. That's somewhat less than compliant with RFC 8166, though good enough for any operation the Linux NFS/RDMA client uses, and most every operation Solaris can send. The patches below are clean-ups and optimizations that prepare the way for multi-Write chunk support. --- Chuck Lever (16): nfsd: Fix NFSv4 READ on RDMA when using readv NFSD: Clean up nfsd4_encode_readv svcrdma: Fix double svc_rdma_send_ctxt_put() in an error path SUNRPC: Add xdr_pad_size() helper svcrdma: Create a generic tracing class for displaying xdr_buf layout svcrdma: Remove svcrdma_cm_event() trace point svcrdma: Use struct xdr_stream to decode ingress transport headers svcrdma: De-duplicate code that locates Write and Reply chunks svcrdma: Update synopsis of svc_rdma_send_reply_chunk() svcrdma: Update synopsis of svc_rdma_map_reply_msg() svcrdma: Update synopsis of svc_rdma_send_reply_msg() svcrdma: Rename svcrdma_encode trace points in send routines SUNRPC: Add encoders for list item discriminators svcrdma: Refactor chunk list encoders svcrdma: Fix double sync of transport header buffer svcrdma: Avoid DMA mapping small RPC Replies fs/nfsd/nfs4xdr.c | 29 +- include/linux/sunrpc/rpc_rdma.h | 3 include/linux/sunrpc/svc.h | 3 include/linux/sunrpc/svc_rdma.h | 23 + include/linux/sunrpc/svc_xprt.h | 2 include/linux/sunrpc/xdr.h | 54 +++ include/trace/events/rpcrdma.h | 67 ++-- include/trace/events/sunrpc.h | 43 ++ net/sunrpc/auth_gss/auth_gss.c | 4 net/sunrpc/auth_gss/svcauth_gss.c | 4 net/sunrpc/svc.c | 16 + net/sunrpc/svc_xprt.c | 6 net/sunrpc/svcsock.c | 8 net/sunrpc/xprt.c | 4 net/sunrpc/xprtrdma/rpc_rdma.c | 39 -- net/sunrpc/xprtrdma/svc_rdma_backchannel.c | 16 + net/sunrpc/xprtrdma/svc_rdma_recvfrom.c | 248 +++++++++----- net/sunrpc/xprtrdma/svc_rdma_rw.c | 55 ++- net/sunrpc/xprtrdma/svc_rdma_sendto.c | 504 ++++++++++++++++------------ net/sunrpc/xprtrdma/svc_rdma_transport.c | 8 20 files changed, 693 insertions(+), 443 deletions(-) -- Chuck Lever