svcrdma: Do not send Write chunk XDR pad with inline content
authorChuck Lever <chuck.lever@oracle.com>
Tue, 1 Mar 2016 18:05:54 +0000 (13:05 -0500)
committerJ. Bruce Fields <bfields@redhat.com>
Tue, 1 Mar 2016 21:06:34 +0000 (13:06 -0800)
commitf6763c29ab86c3ee27760a06e07bbeab47635b61
tree34252ca2fcf9334f18cb2be875ecf340bb0502ba
parentcf570a93748ab95cf5d13d3d8058875f970f3a66
svcrdma: Do not send Write chunk XDR pad with inline content

The NFS server's XDR encoders adds an XDR pad for content in the
xdr_buf page list at the beginning of the xdr_buf's tail buffer.

On RDMA transports, Write chunks are sent separately and without an
XDR pad.

If a Write chunk is being sent, strip off the pad in the tail buffer
so that inline content following the Write chunk remains XDR-aligned
when it is sent to the client.

BugLink: https://bugzilla.linux-nfs.org/show_bug.cgi?id=294
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
include/linux/sunrpc/svc_rdma.h
net/sunrpc/xprtrdma/svc_rdma_backchannel.c
net/sunrpc/xprtrdma/svc_rdma_sendto.c