blk-mq: remove blk_mq_alloc_tag_set_tags
authorChristoph Hellwig <hch@lst.de>
Wed, 9 Nov 2022 10:08:10 +0000 (11:08 +0100)
committerJens Axboe <axboe@kernel.dk>
Thu, 10 Nov 2022 18:18:09 +0000 (11:18 -0700)
There is no point in trying to share any code with the realloc case when
all that is needed by the initial tagset allocation is a simple
kcalloc_node.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
Link: https://lore.kernel.org/r/20221109100811.2413423-1-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-mq.c

index fc9c400..0134a1d 100644 (file)
@@ -4398,12 +4398,6 @@ static int blk_mq_realloc_tag_set_tags(struct blk_mq_tag_set *set,
        return 0;
 }
 
-static int blk_mq_alloc_tag_set_tags(struct blk_mq_tag_set *set,
-                               int new_nr_hw_queues)
-{
-       return blk_mq_realloc_tag_set_tags(set, 0, new_nr_hw_queues);
-}
-
 /*
  * Alloc a tag set to be associated with one or more request queues.
  * May fail with EINVAL for various error conditions. May adjust the
@@ -4466,11 +4460,13 @@ int blk_mq_alloc_tag_set(struct blk_mq_tag_set *set)
                        goto out_free_srcu;
        }
 
-       ret = blk_mq_alloc_tag_set_tags(set, set->nr_hw_queues);
-       if (ret)
+       ret = -ENOMEM;
+       set->tags = kcalloc_node(set->nr_hw_queues,
+                                sizeof(struct blk_mq_tags *), GFP_KERNEL,
+                                set->numa_node);
+       if (!set->tags)
                goto out_cleanup_srcu;
 
-       ret = -ENOMEM;
        for (i = 0; i < set->nr_maps; i++) {
                set->map[i].mq_map = kcalloc_node(nr_cpu_ids,
                                                  sizeof(set->map[i].mq_map[0]),