diff options
author | Tom Tucker <tom@opengridcomputing.com> | 2008-04-25 16:51:27 -0400 |
---|---|---|
committer | Tom Tucker <tom@opengridcomputing.com> | 2008-05-19 08:33:45 -0400 |
commit | 9d6347acd2134373c3a4c65a4d43e4f1d59aa012 (patch) | |
tree | 20e7153e5a238f057a43797329644dd122c43877 /net/sunrpc/xprtrdma | |
parent | dbcd00eba99945acfc433508a58eadc5dcd18cad (diff) |
svcrdma: Fix return value in svc_rdma_send
Fix the return value on close to -ENOTCONN so caller knows to free context.
Also if a thread is waiting for free SQ space, check for close when waking
to avoid posting WR to a closing transport.
Signed-off-by: Tom Tucker <tom@opengridcomputing.com>
Diffstat (limited to 'net/sunrpc/xprtrdma')
-rw-r--r-- | net/sunrpc/xprtrdma/svc_rdma_transport.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/sunrpc/xprtrdma/svc_rdma_transport.c b/net/sunrpc/xprtrdma/svc_rdma_transport.c index 73734173f994..17f036b23a96 100644 --- a/net/sunrpc/xprtrdma/svc_rdma_transport.c +++ b/net/sunrpc/xprtrdma/svc_rdma_transport.c | |||
@@ -1002,7 +1002,7 @@ int svc_rdma_send(struct svcxprt_rdma *xprt, struct ib_send_wr *wr) | |||
1002 | int ret; | 1002 | int ret; |
1003 | 1003 | ||
1004 | if (test_bit(XPT_CLOSE, &xprt->sc_xprt.xpt_flags)) | 1004 | if (test_bit(XPT_CLOSE, &xprt->sc_xprt.xpt_flags)) |
1005 | return 0; | 1005 | return -ENOTCONN; |
1006 | 1006 | ||
1007 | BUG_ON(wr->send_flags != IB_SEND_SIGNALED); | 1007 | BUG_ON(wr->send_flags != IB_SEND_SIGNALED); |
1008 | BUG_ON(((struct svc_rdma_op_ctxt *)(unsigned long)wr->wr_id)->wr_op != | 1008 | BUG_ON(((struct svc_rdma_op_ctxt *)(unsigned long)wr->wr_id)->wr_op != |