block: save previous hardware queue count before udpate
authorWeiping Zhang <zhangweiping@didiglobal.com>
Thu, 7 May 2020 13:03:56 +0000 (21:03 +0800)
committerJens Axboe <axboe@kernel.dk>
Sat, 9 May 2020 22:15:12 +0000 (16:15 -0600)
blk_mq_realloc_tag_set_tags will update set->nr_hw_queues, so
save old set->nr_hw_queues before call this function.

Signed-off-by: Weiping Zhang <zhangweiping@didiglobal.com>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Ming Lei <ming.lei@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-mq.c

index e9643b0..9e518ae 100644 (file)
@@ -3358,11 +3358,11 @@ static void __blk_mq_update_nr_hw_queues(struct blk_mq_tag_set *set,
                blk_mq_sysfs_unregister(q);
        }
 
+       prev_nr_hw_queues = set->nr_hw_queues;
        if (blk_mq_realloc_tag_set_tags(set, set->nr_hw_queues, nr_hw_queues) <
            0)
                goto reregister;
 
-       prev_nr_hw_queues = set->nr_hw_queues;
        set->nr_hw_queues = nr_hw_queues;
        blk_mq_update_queue_map(set);
 fallback: