Lines Matching full:flush

13  * indicates a simple flush request.  If there is data, REQ_PREFLUSH indicates
28 * The actual execution of flush is double buffered. Whenever a request
31 * REQ_OP_FLUSH is issued and the pending_idx is toggled. When the flush
37 * flush.
39 * C1. At any given time, only one flush shall be in progress. This makes
42 * C2. Flush is deferred if any request is executing DATA of its sequence.
88 * If flush has been pending longer than the following timeout,
105 return 1 << ffz(rq->flush.seq); in blk_flush_cur_seq()
111 * After flush data completion, @rq->bio is %NULL but we need to in blk_flush_restore_request()
121 rq->end_io = rq->flush.saved_end_io; in blk_flush_restore_request()
136 * blk_flush_complete_seq - complete flush sequence
138 * @fq: flush queue
142 * @rq just completed @seq part of its flush sequence, record the
156 BUG_ON(rq->flush.seq & seq); in blk_flush_complete_seq()
157 rq->flush.seq |= seq; in blk_flush_complete_seq()
168 /* queue for flush */ in blk_flush_complete_seq()
185 * flush sequencing and may already have gone through the in blk_flush_complete_seq()
186 * flush data request completion path. Restore @rq for in blk_flush_complete_seq()
221 * Flush request has to be marked as IDLE when it is really ended in flush_end_io()
241 /* account completion of the flush request */ in flush_end_io()
263 * blk_kick_flush - consider issuing flush request
265 * @fq: flush queue
268 * Flush related states of @q have changed, consider issuing flush request.
294 * Issue flush and toggle pending_idx. This makes pending_idx in blk_kick_flush()
295 * different from running_idx, which means flush is in flight. in blk_kick_flush()
304 * the tag's ownership for flush req. in blk_kick_flush()
306 * In case of IO scheduler, flush rq need to borrow scheduler tag in blk_kick_flush()
371 rq->flush.seq = 0; in blk_rq_init_flush()
373 rq->flush.saved_end_io = rq->end_io; /* Usually NULL */ in blk_rq_init_flush()
378 * Insert a PREFLUSH/FUA request into the flush state machine.
379 * Returns true if the request has been consumed by the flush state machine,
389 /* FLUSH/FUA request must never be merged */ in blk_insert_flush()
423 * An empty flush handed down from a stacking driver may in blk_insert_flush()
432 * If there's data, but no flush is necessary, the request can in blk_insert_flush()
433 * be processed directly without going through flush machinery. in blk_insert_flush()
439 * Initialize the flush fields and completion handler to trigger in blk_insert_flush()
440 * the post flush, and then just pass the command on. in blk_insert_flush()
443 rq->flush.seq |= REQ_FSEQ_PREFLUSH; in blk_insert_flush()
450 * Mark the request as part of a flush sequence and submit it in blk_insert_flush()
451 * for further processing to the flush state machine. in blk_insert_flush()
462 * blkdev_issue_flush - queue a flush
463 * @bdev: blockdev to issue flush for
466 * Issue a flush for the block device in question.
507 /* bio based request queue hasn't flush queue */ in blk_free_flush_queue()