svcrdma: Improve Read chunk sanity checking
authorChuck Lever <chuck.lever@oracle.com>
Fri, 23 Jun 2017 21:17:44 +0000 (17:17 -0400)
committerJ. Bruce Fields <bfields@redhat.com>
Wed, 28 Jun 2017 18:21:43 +0000 (14:21 -0400)
commite77340e00300df9b6591d686f186eea60c67206f
tree025b71e1ff63736c2eef161f361b927343677463
parenta80a32341fbabd4276165a9ce4fa4c80168c0bef
svcrdma: Improve Read chunk sanity checking

Identify malformed transport headers and unsupported chunk
combinations as early as possible.

- Reject RPC-over-RDMA messages that contain more than one Read chunk,
  since this implementation currently does not support more than one
  per RPC transaction.

- Ensure that segment lengths are not crazy.

- Remove the segment count check. With a 1KB inline threshold, the
  largest number of Read segments that can be conveyed is about 40
  (for a RDMA_NOMSG Call message). This is nowhere near
  RPCSVC_MAXPAGES. As far as I can tell, that was just a sanity
  check and does not enforce an implementation limit.

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