rq_list
list_add_tail(&rq->queuelist, &rq_list);
list_sort(NULL, &rq_list, sched_rq_cmp);
dispatched |= blk_mq_dispatch_hctx_list(&rq_list);
} while (!list_empty(&rq_list));
dispatched = blk_mq_dispatch_rq_list(hctx, &rq_list, false);
LIST_HEAD(rq_list);
list_add(&rq->queuelist, &rq_list);
} while (blk_mq_dispatch_rq_list(rq->mq_hctx, &rq_list, false));
LIST_HEAD(rq_list);
list_splice_init(&hctx->dispatch, &rq_list);
if (!list_empty(&rq_list)) {
if (!blk_mq_dispatch_rq_list(hctx, &rq_list, true))
blk_mq_flush_busy_ctxs(hctx, &rq_list);
blk_mq_dispatch_rq_list(hctx, &rq_list, true);
static bool blk_mq_dispatch_hctx_list(struct list_head *rq_list)
list_first_entry(rq_list, struct request, queuelist)->mq_hctx;
list_for_each_entry(rq, rq_list, queuelist) {
list_cut_before(&hctx_list, rq_list, &rq->queuelist);
list_splice_tail_init(rq_list, &hctx_list);
LIST_HEAD(rq_list);
LIST_HEAD(rq_list);
list_splice_init(&q->requeue_list, &rq_list);
while (!list_empty(&rq_list)) {
rq = list_entry(rq_list.next, struct request, queuelist);
static void blk_mq_issue_direct(struct rq_list *rqs)
static void __blk_mq_flush_list(struct request_queue *q, struct rq_list *rqs)
static unsigned blk_mq_extract_queue_requests(struct rq_list *rqs,
struct rq_list *queue_rqs)
struct rq_list matched_rqs = {};
static void blk_mq_dispatch_queue_requests(struct rq_list *rqs, unsigned depth)
static void blk_mq_dispatch_list(struct rq_list *rqs, bool from_sched)
struct rq_list requeue_list = {};
static void blk_mq_dispatch_multiple_queue_requests(struct rq_list *rqs)
struct rq_list queue_rqs;
struct rq_list *cached_rqs;
struct list_head rq_list[KYBER_NUM_DOMAINS];
INIT_LIST_HEAD(&kcq->rq_list[i]);
struct list_head *rq_list = &kcq->rq_list[sched_domain];
merged = blk_bio_list_merge(hctx->queue, rq_list, bio, nr_segs);
struct list_head *rq_list,
list_for_each_entry_safe(rq, next, rq_list, queuelist) {
struct list_head *head = &kcq->rq_list[sched_domain];
list_splice_tail_init(&kcq->rq_list[flush_data->sched_domain],
struct list_head rq_list;
list_add_tail(&bd->rq->queuelist, &d->rq_list);
rq = list_first_entry_or_null(&d->rq_list, struct request,
list_for_each_entry_safe(rq, rqnext, &d->rq_list, queuelist) {
INIT_LIST_HEAD(&d->rq_list);
static void null_queue_rqs(struct rq_list *rqlist)
struct rq_list requeue_list = {};
static void ublk_queue_cmd_list(struct ublk_io *io, struct rq_list *l)
static void ublk_queue_rqs(struct rq_list *rqlist)
struct rq_list requeue_list = { };
struct rq_list submit_list = { };
static void ublk_batch_queue_cmd_list(struct ublk_queue *ubq, struct rq_list *l)
static void ublk_batch_queue_rqs(struct rq_list *rqlist)
struct rq_list requeue_list = { };
struct rq_list submit_list = { };
struct rq_list *rqlist)
static void virtio_queue_rqs(struct rq_list *rqlist)
struct rq_list submit_list = { };
struct rq_list requeue_list = { };
INIT_LIST_HEAD(&hr_cq->rq_list);
struct list_head rq_list; /* all qps on this recv cq */
list_for_each_entry(hr_qp, &hr_cq->rq_list, rq_node) {
list_for_each_entry(hr_qp, &hr_cq->rq_list, rq_node) {
list_add_tail(&hr_qp->rq_node, &hr_recv_cq->rq_list);
rq = list_first_entry_or_null(&dev->rq_list, struct request, queuelist);
list_add_tail(&bd->rq->queuelist, &dev->rq_list);
INIT_LIST_HEAD(&new->rq_list);
static void nvme_submit_cmds(struct nvme_queue *nvmeq, struct rq_list *rqlist)
static void nvme_queue_rqs(struct rq_list *rqlist)
struct rq_list submit_list = { };
struct rq_list requeue_list = { };
list_for_each_entry(srp, &sfp->rq_list, entry) {
list_for_each_entry(srp, &sfp->rq_list, entry) {
list_for_each_entry(srp, &sfp->rq_list, entry) {
struct list_head rq_list; /* head of request list */
list_for_each_entry(resp, &sfp->rq_list, entry) {
if (!list_empty(&sfp->rq_list)) {
list_add_tail(&rp->entry, &sfp->rq_list);
if (!sfp || !srp || list_empty(&sfp->rq_list))
INIT_LIST_HEAD(&sfp->rq_list);
while (!list_empty(&sfp->rq_list)) {
srp = list_first_entry(&sfp->rq_list, Sg_request, entry);
list_for_each_entry(srp, &fp->rq_list, entry) {
if (list_empty(&fp->rq_list))
list_for_each_entry(srp, &sfp->rq_list, entry) {
static inline int rq_list_empty(const struct rq_list *rl)
static inline void rq_list_init(struct rq_list *rl)
static inline void rq_list_add_tail(struct rq_list *rl, struct request *rq)
static inline void rq_list_add_head(struct rq_list *rl, struct request *rq)
static inline struct request *rq_list_pop(struct rq_list *rl)
static inline struct request *rq_list_peek(struct rq_list *rl)
void (*queue_rqs)(struct rq_list *rqlist);
struct rq_list mq_list; /* blk-mq requests */
struct rq_list cached_rqs;
struct rq_list req_list;
struct list_head rq_list;
struct list_head rq_list; /* Slot allocation list */
req = list_entry(xprt->free.next, struct rpc_rqst, rq_list);
list_del(&req->rq_list);
list_add(&req->rq_list, &xprt->free);
req = list_first_entry(&xprt->free, struct rpc_rqst, rq_list);
list_del(&req->rq_list);
list_add(&req->rq_list, &xprt->free);