Lines Matching refs:plug
1946 void blk_mq_flush_plug_list(struct blk_plug *plug, bool from_schedule) in blk_mq_flush_plug_list() argument
1950 if (list_empty(&plug->mq_list)) in blk_mq_flush_plug_list()
1952 list_splice_init(&plug->mq_list, &list); in blk_mq_flush_plug_list()
1954 if (plug->rq_count > 2 && plug->multiple_queues) in blk_mq_flush_plug_list()
1957 plug->rq_count = 0; in blk_mq_flush_plug_list()
2162 static void blk_add_rq_to_plug(struct blk_plug *plug, struct request *rq) in blk_add_rq_to_plug() argument
2164 list_add_tail(&rq->queuelist, &plug->mq_list); in blk_add_rq_to_plug()
2165 plug->rq_count++; in blk_add_rq_to_plug()
2166 if (!plug->multiple_queues && !list_is_singular(&plug->mq_list)) { in blk_add_rq_to_plug()
2169 tmp = list_first_entry(&plug->mq_list, struct request, in blk_add_rq_to_plug()
2172 plug->multiple_queues = true; in blk_add_rq_to_plug()
2181 static inline unsigned short blk_plug_max_rq_count(struct blk_plug *plug) in blk_plug_max_rq_count() argument
2183 if (plug->multiple_queues) in blk_plug_max_rq_count()
2212 struct blk_plug *plug; in blk_mq_submit_bio() local
2258 plug = blk_mq_plug(q, bio); in blk_mq_submit_bio()
2263 } else if (plug && (q->nr_hw_queues == 1 || in blk_mq_submit_bio()
2273 unsigned int request_count = plug->rq_count; in blk_mq_submit_bio()
2279 last = list_entry_rq(plug->mq_list.prev); in blk_mq_submit_bio()
2281 if (request_count >= blk_plug_max_rq_count(plug) || (last && in blk_mq_submit_bio()
2283 blk_flush_plug_list(plug, false); in blk_mq_submit_bio()
2287 blk_add_rq_to_plug(plug, rq); in blk_mq_submit_bio()
2291 } else if (plug && !blk_queue_nomerges(q)) { in blk_mq_submit_bio()
2299 if (list_empty(&plug->mq_list)) in blk_mq_submit_bio()
2303 plug->rq_count--; in blk_mq_submit_bio()
2305 blk_add_rq_to_plug(plug, rq); in blk_mq_submit_bio()
3985 if (current->plug) in blk_poll()
3986 blk_flush_plug_list(current->plug, false); in blk_poll()