svcrdma: Find client-provided write and reply chunks once per reply
authorChuck Lever <chuck.lever@oracle.com>
Tue, 1 Mar 2016 18:05:36 +0000 (13:05 -0500)
committerJ. Bruce Fields <bfields@redhat.com>
Tue, 1 Mar 2016 21:06:32 +0000 (13:06 -0800)
commit08ae4e7fedc6a853ad69d6d8abb760b55988608a
tree753202037514310e96260ac600a14caf7f0bcd13
parent4ce85c8cf8a8ecfff932642cf20677d7efc90ad3
svcrdma: Find client-provided write and reply chunks once per reply

The client provides the location of Write chunks into which the
server writes bulk payload. The client provides these when the
Upper Layer Protocol wants direct data placement and the Binding
allows it. (For NFS, this is READ and READLINK operations).

The client also provides the location of a Reply chunk into which
the server writes the non-bulk part of an RPC reply. The client
provides this chunk whenever it believes the reply can be larger
than its receive buffers.

The server then uses the presence of these chunks to determine how
it will form its reply message.

svc_rdma_sendto() was looking for Write and Reply chunks multiple
times for every reply message. It would be more efficient to do it
just once.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
net/sunrpc/xprtrdma/svc_rdma_sendto.c