Lines Matching full:plug

816 	struct blk_plug *plug;  in submit_bio_checks()  local
820 plug = blk_mq_plug(q, bio); in submit_bio_checks()
821 if (plug && plug->nowait) in submit_bio_checks()
1672 * @plug: The &struct blk_plug that needs to be initialized
1690 * plug. By flushing the pending I/O when the process goes to sleep, we avoid
1693 void blk_start_plug(struct blk_plug *plug) in blk_start_plug() argument
1698 * If this is a nested plug, don't actually assign it. in blk_start_plug()
1700 if (tsk->plug) in blk_start_plug()
1703 INIT_LIST_HEAD(&plug->mq_list); in blk_start_plug()
1704 INIT_LIST_HEAD(&plug->cb_list); in blk_start_plug()
1705 plug->rq_count = 0; in blk_start_plug()
1706 plug->multiple_queues = false; in blk_start_plug()
1707 plug->nowait = false; in blk_start_plug()
1713 tsk->plug = plug; in blk_start_plug()
1717 static void flush_plug_callbacks(struct blk_plug *plug, bool from_schedule) in flush_plug_callbacks() argument
1721 while (!list_empty(&plug->cb_list)) { in flush_plug_callbacks()
1722 list_splice_init(&plug->cb_list, &callbacks); in flush_plug_callbacks()
1737 struct blk_plug *plug = current->plug; in blk_check_plugged() local
1740 if (!plug) in blk_check_plugged()
1743 list_for_each_entry(cb, &plug->cb_list, list) in blk_check_plugged()
1753 list_add(&cb->list, &plug->cb_list); in blk_check_plugged()
1759 void blk_flush_plug_list(struct blk_plug *plug, bool from_schedule) in blk_flush_plug_list() argument
1761 flush_plug_callbacks(plug, from_schedule); in blk_flush_plug_list()
1763 if (!list_empty(&plug->mq_list)) in blk_flush_plug_list()
1764 blk_mq_flush_plug_list(plug, from_schedule); in blk_flush_plug_list()
1769 * @plug: The &struct blk_plug passed to blk_start_plug()
1777 void blk_finish_plug(struct blk_plug *plug) in blk_finish_plug() argument
1779 if (plug != current->plug) in blk_finish_plug()
1781 blk_flush_plug_list(plug, false); in blk_finish_plug()
1783 current->plug = NULL; in blk_finish_plug()