Browse Source

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>
Tom Tucker 17 years ago
parent
commit
9d6347acd2
1 changed files with 1 additions and 1 deletions
  1. 1 1
      net/sunrpc/xprtrdma/svc_rdma_transport.c

+ 1 - 1
net/sunrpc/xprtrdma/svc_rdma_transport.c

@@ -1002,7 +1002,7 @@ int svc_rdma_send(struct svcxprt_rdma *xprt, struct ib_send_wr *wr)
 	int ret;
 	int ret;
 
 
 	if (test_bit(XPT_CLOSE, &xprt->sc_xprt.xpt_flags))
 	if (test_bit(XPT_CLOSE, &xprt->sc_xprt.xpt_flags))
-		return 0;
+		return -ENOTCONN;
 
 
 	BUG_ON(wr->send_flags != IB_SEND_SIGNALED);
 	BUG_ON(wr->send_flags != IB_SEND_SIGNALED);
 	BUG_ON(((struct svc_rdma_op_ctxt *)(unsigned long)wr->wr_id)->wr_op !=
 	BUG_ON(((struct svc_rdma_op_ctxt *)(unsigned long)wr->wr_id)->wr_op !=