diff options
author | Christoph Hellwig <hch@lst.de> | 2021-10-19 15:25:53 +0300 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2021-10-19 20:10:09 +0300 |
commit | d92ca9d8348fb12c89eac5928bd651c3a485d7b9 (patch) | |
tree | 05d9098b647cd912977e1f87fa297fd9c543ffde /block/blk.h | |
parent | dc5fc361d891e089dfd9c0a975dc78041036b906 (diff) | |
download | linux-d92ca9d8348fb12c89eac5928bd651c3a485d7b9.tar.xz |
blk-mq: don't handle non-flush requests in blk_insert_flush
Return to the normal blk_mq_submit_bio flow if the bio did not end up
actually being a flush because the device didn't support it. Note that
this is basically impossible to hit without special instrumentation given
that submit_bio_checks already clears these flags usually, so we'd need a
tight race to actually hit this code path.
With this the call to blk_mq_run_hw_queue for the flush requests can be
removed given that the actual flush requests are always issued via the
requeue workqueue which runs the queue unconditionally.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20211019122553.2467817-1-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block/blk.h')
-rw-r--r-- | block/blk.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/block/blk.h b/block/blk.h index b9729c12fd62..6a039e6c7d07 100644 --- a/block/blk.h +++ b/block/blk.h @@ -236,7 +236,7 @@ void __blk_account_io_done(struct request *req, u64 now); */ #define ELV_ON_HASH(rq) ((rq)->rq_flags & RQF_HASHED) -void blk_insert_flush(struct request *rq); +bool blk_insert_flush(struct request *rq); int elevator_switch_mq(struct request_queue *q, struct elevator_type *new_e); |