aboutsummaryrefslogtreecommitdiffstats
path: root/net/sunrpc/xprtrdma
diff options
context:
space:
mode:
authorTom Tucker <tom@opengridcomputing.com>2008-04-25 16:51:27 -0400
committerTom Tucker <tom@opengridcomputing.com>2008-05-19 08:33:45 -0400
commit9d6347acd2134373c3a4c65a4d43e4f1d59aa012 (patch)
tree20e7153e5a238f057a43797329644dd122c43877 /net/sunrpc/xprtrdma
parentdbcd00eba99945acfc433508a58eadc5dcd18cad (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.c2
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 !=