mq_hctx
flush_rq->mq_hctx = first_rq->mq_hctx;
struct blk_mq_hw_ctx *hctx = rq->mq_hctx;
if (rq->mq_hctx == params->hctx)
if (rq->mq_hctx != hctx)
} while (blk_mq_dispatch_rq_list(rq->mq_hctx, &rq_list, false));
return rqa->mq_hctx > rqb->mq_hctx;
list_first_entry(rq_list, struct request, queuelist)->mq_hctx;
if (rq->mq_hctx != hctx) {
if (rq->q == q && (!hctx || rq->mq_hctx == hctx))
return (rq->mq_hctx->queue_num << BLK_MQ_UNIQUE_TAG_BITS) |
if (nr_tags == TAG_COMP_BATCH || cur_hctx != rq->mq_hctx) {
cur_hctx = rq->mq_hctx;
if ((rq->mq_hctx->nr_ctx == 1 &&
rq->mq_hctx->tags->rqs[rq->tag] = rq;
WRITE_ONCE(rq->bio->bi_cookie, rq->mq_hctx->queue_num);
struct blk_mq_hw_ctx *hctx = rq->mq_hctx;
if (!rq->mq_hctx)
if (rq->mq_hctx->type != HCTX_TYPE_POLL)
blk_hctx_poll(rq->q, rq->mq_hctx, NULL, BLK_POLL_ONESHOT);
struct blk_mq_hw_ctx *hctx = rq->mq_hctx;
struct sbitmap_queue *bt = &rq->mq_hctx->tags->bitmap_tags;
unsigned int tag_offset = rq->mq_hctx->tags->nr_reserved_tags;
blk_mq_tag_busy(rq->mq_hctx);
if (blk_mq_tag_is_reserved(rq->mq_hctx->sched_tags, rq->internal_tag)) {
bt = &rq->mq_hctx->tags->breserved_tags;
if (!hctx_may_queue(rq->mq_hctx, bt))
blk_mq_inc_active_requests(rq->mq_hctx);
if (blk_mq_tag_is_reserved(rq->mq_hctx->sched_tags, rq->internal_tag))
struct blk_mq_hw_ctx *hctx = rq->mq_hctx;
WARN_ON_ONCE(hctx != rq->mq_hctx);
struct blk_mq_hw_ctx *hctx = rq->mq_hctx;
struct blk_mq_hw_ctx *hctx = rq->mq_hctx;
struct blk_mq_hw_ctx *hctx = rq->mq_hctx;
if (hctx != rq->mq_hctx) {
hctx = rq->mq_hctx;
this_hctx = rq->mq_hctx;
} else if (this_hctx != rq->mq_hctx || this_ctx != rq->mq_ctx ||
if (type != rq->mq_hctx->type &&
(type != HCTX_TYPE_READ || rq->mq_hctx->type != HCTX_TYPE_DEFAULT))
hctx = rq->mq_hctx;
if (rq->mq_hctx != iter_data->hctx)
rq->mq_hctx = hctx;
ret = blk_hctx_poll(q, rq->mq_hctx, iob, poll_flags);
if (blk_mq_get_hctx_type(opf) != rq->mq_hctx->type)
struct blk_mq_hw_ctx *hctx = rq->mq_hctx;
rq->mq_hctx = NULL;
__blk_mq_put_driver_tag(rq->mq_hctx, rq);
struct blk_mq_hw_ctx *hctx = rq->mq_hctx;
ret = null_queue_rq(rq->mq_hctx, &bd);
if (ublk_iod_is_shmem_zc(req->mq_hctx->driver_data, req->tag))
ublk_dispatch_req(rq->mq_hctx->driver_data, rq);
struct ublk_queue *ubq = rq->mq_hctx->driver_data;
struct ublk_queue *this_q = req->mq_hctx->driver_data;
struct ublk_queue *this_q = req->mq_hctx->driver_data;
struct ublk_queue *ubq = rq->mq_hctx->driver_data;
if (!blk_mq_request_started(rq) && rq->mq_hctx->driver_data == idle->ubq)
struct virtio_blk *vblk = req->mq_hctx->queue->queuedata;
struct virtio_blk *vblk = req->mq_hctx->queue->queuedata;
return virtblk_prep_rq(req->mq_hctx, vblk, req, vbr) == BLK_STS_OK;
struct virtio_blk_vq *this_vq = get_virtio_blk_vq(req->mq_hctx);
if (req->mq_hctx->type == HCTX_TYPE_POLL)
return req->mq_hctx->queue_num + 1;
struct nvme_queue *nvmeq = req->mq_hctx->driver_data;
struct nvme_queue *nvmeq = req->mq_hctx->driver_data;
struct nvme_queue *nvmeq = req->mq_hctx->driver_data;
struct nvme_queue *nvmeq = req->mq_hctx->driver_data;
struct nvme_queue *nvmeq = req->mq_hctx->driver_data;
struct nvme_queue *nvmeq = req->mq_hctx->driver_data;
struct nvme_queue *nvmeq = req->mq_hctx->driver_data;
if (nvmeq && nvmeq != req->mq_hctx->driver_data)
nvmeq = req->mq_hctx->driver_data;
struct nvme_queue *nvmeq = req->mq_hctx->driver_data;
struct nvme_queue *nvmeq = req->mq_hctx->driver_data;
nvme_poll(req->mq_hctx, NULL);
struct nvme_queue *nvmeq = req->mq_hctx->driver_data;
struct nvme_queue *nvmeq = req->mq_hctx->driver_data;
struct nvme_queue *nvmeq = req->mq_hctx->driver_data;
struct nvme_queue *nvmeq = req->mq_hctx->driver_data;
struct nvme_queue *nvmeq = req->mq_hctx->driver_data;
struct nvme_queue *nvmeq = req->mq_hctx->driver_data;
struct nvme_queue *nvmeq = req->mq_hctx->driver_data;
struct nvme_queue *nvmeq = req->mq_hctx->driver_data;
struct blk_mq_hw_ctx *hctx = READ_ONCE(req->mq_hctx);