aboutsummaryrefslogtreecommitdiffstats
path: root/net/sunrpc
diff options
context:
space:
mode:
Diffstat (limited to 'net/sunrpc')
-rw-r--r--net/sunrpc/xprtrdma/svc_rdma_transport.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/net/sunrpc/xprtrdma/svc_rdma_transport.c b/net/sunrpc/xprtrdma/svc_rdma_transport.c
index 817cf4de746c..78303f0fad92 100644
--- a/net/sunrpc/xprtrdma/svc_rdma_transport.c
+++ b/net/sunrpc/xprtrdma/svc_rdma_transport.c
@@ -292,7 +292,6 @@ static void rq_cq_reap(struct svcxprt_rdma *xprt)
292 ib_req_notify_cq(xprt->sc_rq_cq, IB_CQ_NEXT_COMP); 292 ib_req_notify_cq(xprt->sc_rq_cq, IB_CQ_NEXT_COMP);
293 atomic_inc(&rdma_stat_rq_poll); 293 atomic_inc(&rdma_stat_rq_poll);
294 294
295 spin_lock_bh(&xprt->sc_rq_dto_lock);
296 while ((ret = ib_poll_cq(xprt->sc_rq_cq, 1, &wc)) > 0) { 295 while ((ret = ib_poll_cq(xprt->sc_rq_cq, 1, &wc)) > 0) {
297 ctxt = (struct svc_rdma_op_ctxt *)(unsigned long)wc.wr_id; 296 ctxt = (struct svc_rdma_op_ctxt *)(unsigned long)wc.wr_id;
298 ctxt->wc_status = wc.status; 297 ctxt->wc_status = wc.status;
@@ -303,9 +302,10 @@ static void rq_cq_reap(struct svcxprt_rdma *xprt)
303 svc_rdma_put_context(ctxt, 1); 302 svc_rdma_put_context(ctxt, 1);
304 continue; 303 continue;
305 } 304 }
305 spin_lock_bh(&xprt->sc_rq_dto_lock);
306 list_add_tail(&ctxt->dto_q, &xprt->sc_rq_dto_q); 306 list_add_tail(&ctxt->dto_q, &xprt->sc_rq_dto_q);
307 spin_unlock_bh(&xprt->sc_rq_dto_lock);
307 } 308 }
308 spin_unlock_bh(&xprt->sc_rq_dto_lock);
309 309
310 if (ctxt) 310 if (ctxt)
311 atomic_inc(&rdma_stat_rq_prod); 311 atomic_inc(&rdma_stat_rq_prod);