blk-mq: simplify blk_mq_realloc_tag_set_tags
Use set->nr_hw_queues for the current number of tags, and remove the duplicate set->nr_hw_queues update in the caller. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com> Link: https://lore.kernel.org/r/20221109100811.2413423-2-hch@lst.de Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
5ee20298ff
commit
ee9d55210c
|
@ -4376,11 +4376,11 @@ static void blk_mq_update_queue_map(struct blk_mq_tag_set *set)
|
||||||
}
|
}
|
||||||
|
|
||||||
static int blk_mq_realloc_tag_set_tags(struct blk_mq_tag_set *set,
|
static int blk_mq_realloc_tag_set_tags(struct blk_mq_tag_set *set,
|
||||||
int cur_nr_hw_queues, int new_nr_hw_queues)
|
int new_nr_hw_queues)
|
||||||
{
|
{
|
||||||
struct blk_mq_tags **new_tags;
|
struct blk_mq_tags **new_tags;
|
||||||
|
|
||||||
if (cur_nr_hw_queues >= new_nr_hw_queues)
|
if (set->nr_hw_queues >= new_nr_hw_queues)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
new_tags = kcalloc_node(new_nr_hw_queues, sizeof(struct blk_mq_tags *),
|
new_tags = kcalloc_node(new_nr_hw_queues, sizeof(struct blk_mq_tags *),
|
||||||
|
@ -4389,7 +4389,7 @@ static int blk_mq_realloc_tag_set_tags(struct blk_mq_tag_set *set,
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
if (set->tags)
|
if (set->tags)
|
||||||
memcpy(new_tags, set->tags, cur_nr_hw_queues *
|
memcpy(new_tags, set->tags, set->nr_hw_queues *
|
||||||
sizeof(*set->tags));
|
sizeof(*set->tags));
|
||||||
kfree(set->tags);
|
kfree(set->tags);
|
||||||
set->tags = new_tags;
|
set->tags = new_tags;
|
||||||
|
@ -4705,11 +4705,9 @@ static void __blk_mq_update_nr_hw_queues(struct blk_mq_tag_set *set,
|
||||||
}
|
}
|
||||||
|
|
||||||
prev_nr_hw_queues = set->nr_hw_queues;
|
prev_nr_hw_queues = set->nr_hw_queues;
|
||||||
if (blk_mq_realloc_tag_set_tags(set, set->nr_hw_queues, nr_hw_queues) <
|
if (blk_mq_realloc_tag_set_tags(set, nr_hw_queues) < 0)
|
||||||
0)
|
|
||||||
goto reregister;
|
goto reregister;
|
||||||
|
|
||||||
set->nr_hw_queues = nr_hw_queues;
|
|
||||||
fallback:
|
fallback:
|
||||||
blk_mq_update_queue_map(set);
|
blk_mq_update_queue_map(set);
|
||||||
list_for_each_entry(q, &set->tag_list, tag_set_list) {
|
list_for_each_entry(q, &set->tag_list, tag_set_list) {
|
||||||
|
|
Loading…
Reference in New Issue