diff options
author | J. Bruce Fields <bfields@redhat.com> | 2015-12-23 15:08:08 -0500 |
---|---|---|
committer | J. Bruce Fields <bfields@redhat.com> | 2016-01-07 10:10:48 -0500 |
commit | 3daa020f9bf803c03c6b6c895921e2b09fcd494a (patch) | |
tree | f11ae40155db4c9e0d543da3749603fd785c403b /net/sunrpc | |
parent | 0751ddf77b6af2efe1041efb81141badd64efb65 (diff) | |
download | lwn-3daa020f9bf803c03c6b6c895921e2b09fcd494a.tar.gz lwn-3daa020f9bf803c03c6b6c895921e2b09fcd494a.zip |
Revert "svcrdma: Do not send XDR roundup bytes for a write chunk"
This reverts commit 6f18dc893981e4daab29221d6a9771f3ce2dd8c5.
Just as one example, it appears this code could do the wrong thing in
the case of a two-byte NFS READ that crosses a page boundary.
Chuck says: "In that case, nfsd would pass down an xdr_buf that has one
byte in a page, one byte in another page, and a two-byte XDR pad. The
logic introduced by this optimization would be fooled, and neither the
second byte nor the XDR pad would be written to the client."
Cc: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'net/sunrpc')
-rw-r--r-- | net/sunrpc/xprtrdma/svc_rdma_sendto.c | 7 |
1 files changed, 0 insertions, 7 deletions
diff --git a/net/sunrpc/xprtrdma/svc_rdma_sendto.c b/net/sunrpc/xprtrdma/svc_rdma_sendto.c index bad5eaa9f812..969a1ab75fc3 100644 --- a/net/sunrpc/xprtrdma/svc_rdma_sendto.c +++ b/net/sunrpc/xprtrdma/svc_rdma_sendto.c @@ -342,13 +342,6 @@ static int send_write_chunks(struct svcxprt_rdma *xprt, arg_ch->rs_handle, arg_ch->rs_offset, write_len); - - /* Do not send XDR pad bytes */ - if (chunk_no && write_len < 4) { - chunk_no++; - break; - } - chunk_off = 0; while (write_len) { ret = send_write(xprt, rqstp, |