summaryrefslogtreecommitdiffstats
path: root/net/sunrpc/xprtrdma/svc_rdma_sendto.c
diff options
context:
space:
mode:
authorChuck Lever <chuck.lever@oracle.com>2017-06-23 17:17:24 -0400
committerJ. Bruce Fields <bfields@redhat.com>2017-06-28 14:21:43 -0400
commit107c1d0a991abe632a051de697c5acc33c03fd96 (patch)
treef9d870d640b0b26e53daee63e18918dc1680d221 /net/sunrpc/xprtrdma/svc_rdma_sendto.c
parent91a08eae7979417bf10c98f149c6ea28e6632114 (diff)
downloadblackbird-op-linux-107c1d0a991abe632a051de697c5acc33c03fd96.tar.gz
blackbird-op-linux-107c1d0a991abe632a051de697c5acc33c03fd96.zip
svcrdma: Avoid Send Queue overflow
Sanity case: Catch the case where more Work Requests are being posted to the Send Queue than there are Send Queue Entries. This might happen if a client sends a chunk with more segments than there are SQEs for the transport. The server can't send that reply, so the transport will deadlock unless the client drops the RPC. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'net/sunrpc/xprtrdma/svc_rdma_sendto.c')
-rw-r--r--net/sunrpc/xprtrdma/svc_rdma_sendto.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/sunrpc/xprtrdma/svc_rdma_sendto.c b/net/sunrpc/xprtrdma/svc_rdma_sendto.c
index 5ba6d915c906..19fd01e4b690 100644
--- a/net/sunrpc/xprtrdma/svc_rdma_sendto.c
+++ b/net/sunrpc/xprtrdma/svc_rdma_sendto.c
@@ -684,7 +684,7 @@ int svc_rdma_sendto(struct svc_rqst *rqstp)
return 0;
err2:
- if (ret != -E2BIG)
+ if (ret != -E2BIG || ret != -EINVAL)
goto err1;
ret = svc_rdma_post_recv(rdma, GFP_KERNEL);
OpenPOWER on IntegriCloud