summaryrefslogtreecommitdiff
path: root/scripts/cleanfile
diff options
context:
space:
mode:
authorChuck Lever <chuck.lever@oracle.com>2020-03-02 14:45:53 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-08-11 15:33:42 +0200
commit512570b17807ec4f7d0e2f0bd349445e33c051db (patch)
tree8397b0101b81828399b250871bbf0ab04911deec /scripts/cleanfile
parentdf6aeb5235e982ef2facc81922fb8393dc1bc814 (diff)
downloadlinux-512570b17807ec4f7d0e2f0bd349445e33c051db.tar.gz
linux-512570b17807ec4f7d0e2f0bd349445e33c051db.tar.bz2
linux-512570b17807ec4f7d0e2f0bd349445e33c051db.zip
nfsd: Fix NFSv4 READ on RDMA when using readv
commit 412055398b9e67e07347a936fc4a6adddabe9cf4 upstream. svcrdma expects that the payload falls precisely into the xdr_buf page vector. This does not seem to be the case for nfsd4_encode_readv(). This code is called only when fops->splice_read is missing or when RQ_SPLICE_OK is clear, so it's not a noticeable problem in many common cases. Add new transport method: ->xpo_read_payload so that when a READ payload does not fit exactly in rq_res's page vector, the XDR encoder can inform the RPC transport exactly where that payload is, without the payload's XDR pad. That way, when a Write chunk is present, the transport knows what byte range in the Reply message is supposed to be matched with the chunk. Note that the Linux NFS server implementation of NFS/RDMA can currently handle only one Write chunk per RPC-over-RDMA message. This simplifies the implementation of this fix. Fixes: b04209806384 ("nfsd4: allow exotic read compounds") Buglink: https://bugzilla.kernel.org/show_bug.cgi?id=198053 Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Cc: Timo Rothenpieler <timo@rothenpieler.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'scripts/cleanfile')
0 files changed, 0 insertions, 0 deletions