Lines Matching full:plug

619 	/* If plug is not used, add new plug here to cache nsecs time. */  in __submit_bio()
620 struct blk_plug plug; in __submit_bio() local
625 blk_start_plug(&plug); in __submit_bio()
642 blk_finish_plug(&plug); in __submit_bio()
940 blk_flush_plug(current->plug, false); in bio_poll()
1112 void blk_start_plug_nr_ios(struct blk_plug *plug, unsigned short nr_ios) in blk_start_plug_nr_ios() argument
1117 * If this is a nested plug, don't actually assign it. in blk_start_plug_nr_ios()
1119 if (tsk->plug) in blk_start_plug_nr_ios()
1122 plug->cur_ktime = 0; in blk_start_plug_nr_ios()
1123 rq_list_init(&plug->mq_list); in blk_start_plug_nr_ios()
1124 rq_list_init(&plug->cached_rqs); in blk_start_plug_nr_ios()
1125 plug->nr_ios = min_t(unsigned short, nr_ios, BLK_MAX_REQUEST_COUNT); in blk_start_plug_nr_ios()
1126 plug->rq_count = 0; in blk_start_plug_nr_ios()
1127 plug->multiple_queues = false; in blk_start_plug_nr_ios()
1128 plug->has_elevator = false; in blk_start_plug_nr_ios()
1129 INIT_LIST_HEAD(&plug->cb_list); in blk_start_plug_nr_ios()
1135 tsk->plug = plug; in blk_start_plug_nr_ios()
1140 * @plug: The &struct blk_plug that needs to be initialized
1158 * plug. By flushing the pending I/O when the process goes to sleep, we avoid
1161 void blk_start_plug(struct blk_plug *plug) in blk_start_plug() argument
1163 blk_start_plug_nr_ios(plug, 1); in blk_start_plug()
1167 static void flush_plug_callbacks(struct blk_plug *plug, bool from_schedule) in flush_plug_callbacks() argument
1171 while (!list_empty(&plug->cb_list)) { in flush_plug_callbacks()
1172 list_splice_init(&plug->cb_list, &callbacks); in flush_plug_callbacks()
1187 struct blk_plug *plug = current->plug; in blk_check_plugged() local
1190 if (!plug) in blk_check_plugged()
1193 list_for_each_entry(cb, &plug->cb_list, list) in blk_check_plugged()
1203 list_add(&cb->list, &plug->cb_list); in blk_check_plugged()
1209 void __blk_flush_plug(struct blk_plug *plug, bool from_schedule) in __blk_flush_plug() argument
1211 if (!list_empty(&plug->cb_list)) in __blk_flush_plug()
1212 flush_plug_callbacks(plug, from_schedule); in __blk_flush_plug()
1213 blk_mq_flush_plug_list(plug, from_schedule); in __blk_flush_plug()
1220 if (unlikely(!rq_list_empty(&plug->cached_rqs))) in __blk_flush_plug()
1221 blk_mq_free_plug_rqs(plug); in __blk_flush_plug()
1223 plug->cur_ktime = 0; in __blk_flush_plug()
1229 * @plug: The &struct blk_plug passed to blk_start_plug()
1237 void blk_finish_plug(struct blk_plug *plug) in blk_finish_plug() argument
1239 if (plug == current->plug) { in blk_finish_plug()
1240 __blk_flush_plug(plug, false); in blk_finish_plug()
1241 current->plug = NULL; in blk_finish_plug()