Lines Matching refs:rq
60 struct request *rq;
64 list_for_each_entry(rq, rq_list, queuelist) {
65 if (rq->mq_hctx != hctx) {
66 list_cut_before(&hctx_list, rq_list, &rq->queuelist);
103 struct request *rq;
118 rq = e->type->ops.dispatch_request(hctx);
119 if (!rq) {
132 blk_mq_set_rq_budget_token(rq, budget_token);
135 * Now this rq owns the budget which has to be released
136 * if this rq won't be queued to driver via .queue_rq()
139 list_add_tail(&rq->queuelist, &rq_list);
141 if (rq->mq_hctx != hctx)
150 if (!blk_mq_get_driver_tag(rq))
221 struct request *rq;
238 rq = blk_mq_dequeue_from_ctx(hctx, ctx);
239 if (!rq) {
252 blk_mq_set_rq_budget_token(rq, budget_token);
255 * Now this rq owns the budget which has to be released
256 * if this rq won't be queued to driver via .queue_rq()
259 list_add(&rq->queuelist, &rq_list);
262 ctx = blk_mq_next_ctx(hctx, rq->mq_ctx);
264 } while (blk_mq_dispatch_rq_list(rq->mq_hctx, &rq_list, 1));
373 bool blk_mq_sched_try_insert_merge(struct request_queue *q, struct request *rq,
376 return rq_mergeable(rq) && elv_attempt_insert_merge(q, rq, free);