Commit fed171b3 authored by Chuck Lever's avatar Chuck Lever Committed by Anna Schumaker

xprtrdma: Replace rpcrdma_rep::rr_buffer with rr_rxprt

Clean up: Instead of carrying a pointer to the buffer pool and
the rpc_xprt, carry a pointer to the controlling rpcrdma_xprt.
Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
Reviewed-by: default avatarSteve Wise <swise@opengridcomputing.com>
Reviewed-by: default avatarSagi Grimberg <sagig@mellanox.com>
Tested-By: default avatarDevesh Sharma <devesh.sharma@avagotech.com>
Reviewed-by: default avatarDoug Ledford <dledford@redhat.com>
Signed-off-by: default avatarAnna Schumaker <Anna.Schumaker@Netapp.com>
parent 6d44698d
...@@ -732,8 +732,8 @@ rpcrdma_reply_handler(struct rpcrdma_rep *rep) ...@@ -732,8 +732,8 @@ rpcrdma_reply_handler(struct rpcrdma_rep *rep)
struct rpcrdma_msg *headerp; struct rpcrdma_msg *headerp;
struct rpcrdma_req *req; struct rpcrdma_req *req;
struct rpc_rqst *rqst; struct rpc_rqst *rqst;
struct rpc_xprt *xprt = rep->rr_xprt; struct rpcrdma_xprt *r_xprt = rep->rr_rxprt;
struct rpcrdma_xprt *r_xprt = rpcx_to_rdmax(xprt); struct rpc_xprt *xprt = &r_xprt->rx_xprt;
__be32 *iptr; __be32 *iptr;
int rdmalen, status; int rdmalen, status;
unsigned long cwnd; unsigned long cwnd;
......
...@@ -617,12 +617,9 @@ xprt_rdma_send_request(struct rpc_task *task) ...@@ -617,12 +617,9 @@ xprt_rdma_send_request(struct rpc_task *task)
if (req->rl_reply == NULL) /* e.g. reconnection */ if (req->rl_reply == NULL) /* e.g. reconnection */
rpcrdma_recv_buffer_get(req); rpcrdma_recv_buffer_get(req);
/* rpcrdma_recv_buffer_get may have set rl_reply, so check again */
if (req->rl_reply) { if (req->rl_reply)
req->rl_reply->rr_func = rpcrdma_reply_handler; req->rl_reply->rr_func = rpcrdma_reply_handler;
/* this need only be done once, but... */
req->rl_reply->rr_xprt = xprt;
}
/* Must suppress retransmit to maintain credits */ /* Must suppress retransmit to maintain credits */
if (req->rl_connect_cookie == xprt->connect_cookie) if (req->rl_connect_cookie == xprt->connect_cookie)
......
...@@ -278,6 +278,7 @@ rpcrdma_recvcq_process_wc(struct ib_wc *wc, struct list_head *sched_list) ...@@ -278,6 +278,7 @@ rpcrdma_recvcq_process_wc(struct ib_wc *wc, struct list_head *sched_list)
{ {
struct rpcrdma_rep *rep = struct rpcrdma_rep *rep =
(struct rpcrdma_rep *)(unsigned long)wc->wr_id; (struct rpcrdma_rep *)(unsigned long)wc->wr_id;
struct rpcrdma_ia *ia;
/* WARNING: Only wr_id and status are reliable at this point */ /* WARNING: Only wr_id and status are reliable at this point */
if (wc->status != IB_WC_SUCCESS) if (wc->status != IB_WC_SUCCESS)
...@@ -290,8 +291,9 @@ rpcrdma_recvcq_process_wc(struct ib_wc *wc, struct list_head *sched_list) ...@@ -290,8 +291,9 @@ rpcrdma_recvcq_process_wc(struct ib_wc *wc, struct list_head *sched_list)
dprintk("RPC: %s: rep %p opcode 'recv', length %u: success\n", dprintk("RPC: %s: rep %p opcode 'recv', length %u: success\n",
__func__, rep, wc->byte_len); __func__, rep, wc->byte_len);
ia = &rep->rr_rxprt->rx_ia;
rep->rr_len = wc->byte_len; rep->rr_len = wc->byte_len;
ib_dma_sync_single_for_cpu(rdmab_to_ia(rep->rr_buffer)->ri_id->device, ib_dma_sync_single_for_cpu(ia->ri_id->device,
rdmab_addr(rep->rr_rdmabuf), rdmab_addr(rep->rr_rdmabuf),
rep->rr_len, DMA_FROM_DEVICE); rep->rr_len, DMA_FROM_DEVICE);
prefetch(rdmab_to_msg(rep->rr_rdmabuf)); prefetch(rdmab_to_msg(rep->rr_rdmabuf));
...@@ -1053,7 +1055,7 @@ rpcrdma_create_rep(struct rpcrdma_xprt *r_xprt) ...@@ -1053,7 +1055,7 @@ rpcrdma_create_rep(struct rpcrdma_xprt *r_xprt)
goto out_free; goto out_free;
} }
rep->rr_buffer = &r_xprt->rx_buf; rep->rr_rxprt = r_xprt;
return rep; return rep;
out_free: out_free:
...@@ -1423,7 +1425,7 @@ rpcrdma_recv_buffer_get(struct rpcrdma_req *req) ...@@ -1423,7 +1425,7 @@ rpcrdma_recv_buffer_get(struct rpcrdma_req *req)
void void
rpcrdma_recv_buffer_put(struct rpcrdma_rep *rep) rpcrdma_recv_buffer_put(struct rpcrdma_rep *rep)
{ {
struct rpcrdma_buffer *buffers = rep->rr_buffer; struct rpcrdma_buffer *buffers = &rep->rr_rxprt->rx_buf;
unsigned long flags; unsigned long flags;
rep->rr_func = NULL; rep->rr_func = NULL;
......
...@@ -173,8 +173,7 @@ struct rpcrdma_buffer; ...@@ -173,8 +173,7 @@ struct rpcrdma_buffer;
struct rpcrdma_rep { struct rpcrdma_rep {
unsigned int rr_len; unsigned int rr_len;
struct rpcrdma_buffer *rr_buffer; struct rpcrdma_xprt *rr_rxprt;
struct rpc_xprt *rr_xprt;
void (*rr_func)(struct rpcrdma_rep *); void (*rr_func)(struct rpcrdma_rep *);
struct list_head rr_list; struct list_head rr_list;
struct rpcrdma_regbuf *rr_rdmabuf; struct rpcrdma_regbuf *rr_rdmabuf;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment