Lines Matching defs:rqst

56 static int rpcrdma_bc_marshal_reply(struct rpc_rqst *rqst)
58 struct rpcrdma_xprt *r_xprt = rpcx_to_rdmax(rqst->rq_xprt);
59 struct rpcrdma_req *req = rpcr_to_rdmar(rqst);
64 rdmab_data(req->rl_rdmabuf), rqst);
69 *p++ = rqst->rq_xid;
78 &rqst->rq_snd_buf, rpcrdma_noch_pullup))
81 trace_xprtrdma_cb_reply(r_xprt, rqst);
87 * @rqst: RPC rqst with a backchannel RPC reply in rq_snd_buf
97 int xprt_rdma_bc_send_reply(struct rpc_rqst *rqst)
99 struct rpc_xprt *xprt = rqst->rq_xprt;
101 struct rpcrdma_req *req = rpcr_to_rdmar(rqst);
107 if (!xprt_request_get_cong(xprt, rqst))
110 rc = rpcrdma_bc_marshal_reply(rqst);
133 struct rpc_rqst *rqst, *tmp;
136 list_for_each_entry_safe(rqst, tmp, &xprt->bc_pa_list, rq_bc_pa_list) {
137 list_del(&rqst->rq_bc_pa_list);
140 rpcrdma_req_destroy(rpcr_to_rdmar(rqst));
148 * xprt_rdma_bc_free_rqst - Release a backchannel rqst
149 * @rqst: request to release
151 void xprt_rdma_bc_free_rqst(struct rpc_rqst *rqst)
153 struct rpcrdma_req *req = rpcr_to_rdmar(rqst);
155 struct rpc_xprt *xprt = rqst->rq_xprt;
162 list_add_tail(&rqst->rq_bc_pa_list, &xprt->bc_pa_list);
171 struct rpc_rqst *rqst;
175 rqst = list_first_entry_or_null(&xprt->bc_pa_list, struct rpc_rqst,
177 if (!rqst)
179 list_del(&rqst->rq_bc_pa_list);
181 return rqst;
201 rqst = &req->rl_slot;
202 rqst->rq_xprt = xprt;
203 __set_bit(RPC_BC_PA_IN_USE, &rqst->rq_bc_pa_state);
204 xdr_buf_init(&rqst->rq_snd_buf, rdmab_data(req->rl_sendbuf), size);
205 return rqst;
225 struct rpc_rqst *rqst;
239 rqst = rpcrdma_bc_rqst_get(r_xprt);
240 if (!rqst)
243 rqst->rq_reply_bytes_recvd = 0;
244 rqst->rq_xid = *p;
246 rqst->rq_private_buf.len = size;
248 buf = &rqst->rq_rcv_buf;
259 req = rpcr_to_rdmar(rqst);
261 trace_xprtrdma_cb_call(r_xprt, rqst);
263 /* Queue rqst for ULP's callback service */
266 lwq_enqueue(&rqst->rq_bc_list, &bc_serv->sv_cb_list);