xprtrdma: Remove the RPCRDMA_REQ_F_PENDING flag
Commit 9590d083c1
("xprtrdma: Use xprt_pin_rqst in
rpcrdma_reply_handler") pins incoming RPC/RDMA replies so they
can be left in the pending requests queue while they are being
processed without introducing a race between ->buf_free and the
transport's reply handler. Therefore RPCRDMA_REQ_F_PENDING is no
longer necessary.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
This commit is contained in:

committed by
Anna Schumaker

parent
05eb06d866
commit
5809ea4f7c
@@ -1371,7 +1371,6 @@ void rpcrdma_reply_handler(struct rpcrdma_rep *rep)
|
|||||||
}
|
}
|
||||||
req->rl_reply = rep;
|
req->rl_reply = rep;
|
||||||
rep->rr_rqst = rqst;
|
rep->rr_rqst = rqst;
|
||||||
clear_bit(RPCRDMA_REQ_F_PENDING, &req->rl_flags);
|
|
||||||
|
|
||||||
trace_xprtrdma_reply(rqst->rq_task, rep, req, credits);
|
trace_xprtrdma_reply(rqst->rq_task, rep, req, credits);
|
||||||
queue_work(buf->rb_completion_wq, &rep->rr_work);
|
queue_work(buf->rb_completion_wq, &rep->rr_work);
|
||||||
|
@@ -618,7 +618,6 @@ xprt_rdma_free(struct rpc_task *task)
|
|||||||
struct rpcrdma_xprt *r_xprt = rpcx_to_rdmax(rqst->rq_xprt);
|
struct rpcrdma_xprt *r_xprt = rpcx_to_rdmax(rqst->rq_xprt);
|
||||||
struct rpcrdma_req *req = rpcr_to_rdmar(rqst);
|
struct rpcrdma_req *req = rpcr_to_rdmar(rqst);
|
||||||
|
|
||||||
if (test_bit(RPCRDMA_REQ_F_PENDING, &req->rl_flags))
|
|
||||||
rpcrdma_release_rqst(r_xprt, req);
|
rpcrdma_release_rqst(r_xprt, req);
|
||||||
trace_xprtrdma_op_free(task, req);
|
trace_xprtrdma_op_free(task, req);
|
||||||
}
|
}
|
||||||
@@ -667,7 +666,6 @@ xprt_rdma_send_request(struct rpc_rqst *rqst)
|
|||||||
goto drop_connection;
|
goto drop_connection;
|
||||||
rqst->rq_xtime = ktime_get();
|
rqst->rq_xtime = ktime_get();
|
||||||
|
|
||||||
__set_bit(RPCRDMA_REQ_F_PENDING, &req->rl_flags);
|
|
||||||
if (rpcrdma_ep_post(&r_xprt->rx_ia, &r_xprt->rx_ep, req))
|
if (rpcrdma_ep_post(&r_xprt->rx_ia, &r_xprt->rx_ep, req))
|
||||||
goto drop_connection;
|
goto drop_connection;
|
||||||
|
|
||||||
|
@@ -344,7 +344,6 @@ struct rpcrdma_req {
|
|||||||
|
|
||||||
/* rl_flags */
|
/* rl_flags */
|
||||||
enum {
|
enum {
|
||||||
RPCRDMA_REQ_F_PENDING = 0,
|
|
||||||
RPCRDMA_REQ_F_TX_RESOURCES,
|
RPCRDMA_REQ_F_TX_RESOURCES,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user