blk-mq: don't use the requeue list to queue flush commands
authorChristoph Hellwig <hch@lst.de>
Fri, 19 May 2023 04:40:50 +0000 (06:40 +0200)
committerJens Axboe <axboe@kernel.dk>
Sat, 20 May 2023 01:52:42 +0000 (19:52 -0600)
commit9a67aa52a42b31ad44220cc218df3b75a5cd5d05
treeddf14cd0f48f2907aaf4c19f369c1a5efe2ceead
parent1e82fadfc6b96ca79f69d0bcf938d31032bb43d2
blk-mq: don't use the requeue list to queue flush commands

Currently both requeues of commands that were already sent to the driver
and flush commands submitted from the flush state machine share the same
requeue_list struct request_queue, despite requeues doing head
insertions and flushes not.  Switch to using two separate lists instead.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Link: https://lore.kernel.org/r/20230519044050.107790-8-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-flush.c
block/blk-mq-debugfs.c
block/blk-mq.c
block/blk-mq.h
include/linux/blk-mq.h
include/linux/blkdev.h