linux/net/sunrpc/xprtrdma
Chuck Lever 24abdf1be1 xprtrdma: Fix Read chunk padding
When pad optimization is disabled, rpcrdma_convert_iovs still
does not add explicit XDR round-up padding to a Read chunk.

Commit 677eb17e94 ("xprtrdma: Fix XDR tail buffer marshalling")
incorrectly short-circuited the test for whether round-up padding
is needed that appears later in rpcrdma_convert_iovs.

However, if this is indeed a regular Read chunk (and not a
Position-Zero Read chunk), the tail iovec _always_ contains the
chunk's padding, and never anything else.

So, it's easy to just skip the tail when padding optimization is
enabled, and add the tail in a subsequent Read chunk segment, if
disabled.

Fixes: 677eb17e94 ("xprtrdma: Fix XDR tail buffer marshalling")
Cc: stable@vger.kernel.org # v4.9+
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
2017-02-10 14:02:36 -05:00
..
backchannel.c xprtrdma: Cap size of callback buffer resources 2016-11-29 16:45:44 -05:00
fmr_ops.c xprtrdma: Basic support for Remote Invalidation 2016-09-19 13:08:38 -04:00
frwr_ops.c xprtrdma: Update documenting comment 2016-11-29 16:45:44 -05:00
Makefile xprtrdma: Remove ALLPHYSICAL memory registration mode 2016-07-11 15:50:43 -04:00
module.c rpcrdma: Merge svcrdma and xprtrdma modules into one 2015-06-04 16:56:02 -04:00
rpc_rdma.c xprtrdma: Fix Read chunk padding 2017-02-10 14:02:36 -05:00
svc_rdma.c svcrdma: Define maximum number of backchannel requests 2016-01-19 15:30:48 -05:00
svc_rdma_backchannel.c svcrdma: Remove unused variables in xprt_rdma_bc_allocate() 2016-11-30 17:31:14 -05:00
svc_rdma_marshal.c svcrdma: Generalize svc_rdma_xdr_decode_req() 2016-05-13 15:53:06 -04:00
svc_rdma_recvfrom.c svcrdma: avoid duplicate dma unmapping during error recovery 2017-01-12 16:14:47 -05:00
svc_rdma_sendto.c svcrdma: Further clean-up of svc_rdma_get_inv_rkey() 2016-11-30 17:31:16 -05:00
svc_rdma_transport.c The one new feature is support for a new NFSv4.2 mode_umask attribute 2016-12-16 10:48:28 -08:00
transport.c xprtrdma: Relocate connection helper functions 2016-11-29 16:45:44 -05:00
verbs.c xprtrdma: Shorten QP access error message 2016-11-29 16:45:44 -05:00
xprt_rdma.h xprtrdma: Relocate connection helper functions 2016-11-29 16:45:44 -05:00