Lines Matching +full:wait +full:- +full:queue
1 // SPDX-License-Identifier: GPL-2.0
3 * Functions related to setting various queue properties from drivers
9 #include <linux/blk-mq.h>
13 #include "blk-mq-sched.h"
16 * blk_end_sync_rq - executes a completion event on a request
22 struct completion *waiting = rq->end_io_data; in blk_end_sync_rq()
24 rq->end_io_data = (void *)(uintptr_t)error; in blk_end_sync_rq()
34 * blk_execute_rq_nowait - insert a request into queue for execution
35 * @q: queue to insert the request in
38 * @at_head: insert request at head or tail of queue
42 * Insert a fully prepared request at the back of the I/O scheduler queue
43 * for execution. Don't wait for completion.
46 * This function will invoke @done directly if the queue is dead.
55 rq->rq_disk = bd_disk; in blk_execute_rq_nowait()
56 rq->end_io = done; in blk_execute_rq_nowait()
69 * blk_execute_rq - insert a request into queue for execution
70 * @q: queue to insert the request in
73 * @at_head: insert request at head or tail of queue
76 * Insert a fully prepared request at the back of the I/O scheduler queue
77 * for execution and wait for completion.
83 DECLARE_COMPLETION_ONSTACK(wait); in blk_execute_rq()
86 rq->end_io_data = &wait; in blk_execute_rq()
92 while (!wait_for_completion_io_timeout(&wait, hang_check * (HZ/2))); in blk_execute_rq()
94 wait_for_completion_io(&wait); in blk_execute_rq()
96 return (blk_status_t)(uintptr_t)rq->end_io_data; in blk_execute_rq()