blk-mq: remove redundant call to blk_freeze_queue_start in blk_mq_destroy_queue
authorJinlong Chen <nickyc975@zju.edu.cn>
Sun, 30 Oct 2022 08:32:12 +0000 (16:32 +0800)
committerJens Axboe <axboe@kernel.dk>
Mon, 31 Oct 2022 13:30:42 +0000 (07:30 -0600)
The calling relationship in blk_mq_destroy_queue() is as follows:

blk_mq_destroy_queue()
    ...
    -> blk_queue_start_drain()
        -> blk_freeze_queue_start()  <- called
        ...
    -> blk_freeze_queue()
        -> blk_freeze_queue_start()  <- called again
        -> blk_mq_freeze_queue_wait()
    ...

So there is a redundant call to blk_freeze_queue_start().

Replace blk_freeze_queue() with blk_mq_freeze_queue_wait() to avoid the
redundant call.

Signed-off-by: Jinlong Chen <nickyc975@zju.edu.cn>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20221030083212.1251255-1-nickyc975@zju.edu.cn
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-mq.c

index bcb402f..623e8a5 100644 (file)
@@ -4037,7 +4037,7 @@ void blk_mq_destroy_queue(struct request_queue *q)
 
        blk_queue_flag_set(QUEUE_FLAG_DYING, q);
        blk_queue_start_drain(q);
-       blk_freeze_queue(q);
+       blk_mq_freeze_queue_wait(q);
 
        blk_sync_queue(q);
        blk_mq_cancel_work_sync(q);