diff options
author | Tom Tucker <tom@opengridcomputing.com> | 2008-04-25 22:51:27 +0200 |
---|---|---|
committer | Tom Tucker <tom@opengridcomputing.com> | 2008-05-19 14:33:45 +0200 |
commit | 9d6347acd2134373c3a4c65a4d43e4f1d59aa012 (patch) | |
tree | 20e7153e5a238f057a43797329644dd122c43877 /net/sunrpc | |
parent | svcrdma: Fix race with dto_tasklet in svc_rdma_send (diff) | |
download | linux-9d6347acd2134373c3a4c65a4d43e4f1d59aa012.tar.xz linux-9d6347acd2134373c3a4c65a4d43e4f1d59aa012.zip |
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')
-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) int ret; if (test_bit(XPT_CLOSE, &xprt->sc_xprt.xpt_flags)) - return 0; + return -ENOTCONN; BUG_ON(wr->send_flags != IB_SEND_SIGNALED); BUG_ON(((struct svc_rdma_op_ctxt *)(unsigned long)wr->wr_id)->wr_op != |