Lines Matching refs:plug
1916 void blk_mq_flush_plug_list(struct blk_plug *plug, bool from_schedule) in blk_mq_flush_plug_list() argument
1920 if (list_empty(&plug->mq_list)) in blk_mq_flush_plug_list()
1922 list_splice_init(&plug->mq_list, &list); in blk_mq_flush_plug_list()
1924 if (plug->rq_count > 2 && plug->multiple_queues) in blk_mq_flush_plug_list()
1927 plug->rq_count = 0; in blk_mq_flush_plug_list()
2136 static void blk_add_rq_to_plug(struct blk_plug *plug, struct request *rq) in blk_add_rq_to_plug() argument
2138 list_add_tail(&rq->queuelist, &plug->mq_list); in blk_add_rq_to_plug()
2139 plug->rq_count++; in blk_add_rq_to_plug()
2140 if (!plug->multiple_queues && !list_is_singular(&plug->mq_list)) { in blk_add_rq_to_plug()
2143 tmp = list_first_entry(&plug->mq_list, struct request, in blk_add_rq_to_plug()
2146 plug->multiple_queues = true; in blk_add_rq_to_plug()
2155 static inline unsigned short blk_plug_max_rq_count(struct blk_plug *plug) in blk_plug_max_rq_count() argument
2157 if (plug->multiple_queues) in blk_plug_max_rq_count()
2186 struct blk_plug *plug; in blk_mq_submit_bio() local
2235 plug = blk_mq_plug(q, bio); in blk_mq_submit_bio()
2240 } else if (plug && (q->nr_hw_queues == 1 || in blk_mq_submit_bio()
2250 unsigned int request_count = plug->rq_count; in blk_mq_submit_bio()
2256 last = list_entry_rq(plug->mq_list.prev); in blk_mq_submit_bio()
2258 if (request_count >= blk_plug_max_rq_count(plug) || (last && in blk_mq_submit_bio()
2260 blk_flush_plug_list(plug, false); in blk_mq_submit_bio()
2264 blk_add_rq_to_plug(plug, rq); in blk_mq_submit_bio()
2268 } else if (plug && !blk_queue_nomerges(q)) { in blk_mq_submit_bio()
2276 if (list_empty(&plug->mq_list)) in blk_mq_submit_bio()
2280 plug->rq_count--; in blk_mq_submit_bio()
2282 blk_add_rq_to_plug(plug, rq); in blk_mq_submit_bio()
3970 if (current->plug) in blk_poll()
3971 blk_flush_plug_list(current->plug, false); in blk_poll()