Lines Matching refs:flush_rq
214 static void flush_end_io(struct request *flush_rq, blk_status_t error)
216 struct request_queue *q = flush_rq->q;
220 struct blk_flush_queue *fq = blk_get_flush_queue(q, flush_rq->mq_ctx);
225 if (!refcount_dec_and_test(&flush_rq->ref)) {
231 blk_account_io_flush(flush_rq);
237 WRITE_ONCE(flush_rq->state, MQ_RQ_IDLE);
244 flush_rq->tag = BLK_MQ_NO_TAG;
246 blk_mq_put_driver_tag(flush_rq);
247 flush_rq->internal_tag = BLK_MQ_NO_TAG;
291 struct request *flush_rq = fq->flush_rq;
309 blk_rq_init(q, flush_rq);
319 flush_rq->mq_ctx = first_rq->mq_ctx;
320 flush_rq->mq_hctx = first_rq->mq_hctx;
323 flush_rq->tag = first_rq->tag;
330 flush_rq->rq_flags |= RQF_MQ_INFLIGHT;
332 flush_rq->internal_tag = first_rq->internal_tag;
334 flush_rq->cmd_flags = REQ_OP_FLUSH | REQ_PREFLUSH;
335 flush_rq->cmd_flags |= (flags & REQ_DRV) | (flags & REQ_FAILFAST_MASK);
336 flush_rq->rq_flags |= RQF_FLUSH_SEQ;
337 flush_rq->rq_disk = first_rq->rq_disk;
338 flush_rq->end_io = flush_end_io;
342 * blk_mq_find_and_get_req(), which orders WRITE/READ flush_rq->ref
343 * and READ flush_rq->end_io
346 refcount_set(&flush_rq->ref, 1);
348 blk_flush_queue_rq(flush_rq, false);
482 fq->flush_rq = kzalloc_node(rq_sz, flags, node);
483 if (!fq->flush_rq)
504 kfree(fq->flush_rq);