blk-mq: improve error handling in blk_mq_alloc_rq_map()
authorJinlong Chen <nickyc975@zju.edu.cn>
Wed, 2 Nov 2022 02:52:29 +0000 (10:52 +0800)
committerJens Axboe <axboe@kernel.dk>
Wed, 2 Nov 2022 14:36:50 +0000 (08:36 -0600)
Use goto-style error handling like we do elsewhere in the kernel.

Signed-off-by: Jinlong Chen <nickyc975@zju.edu.cn>
Link: https://lore.kernel.org/r/bbbc2d9b17b137798c7fb92042141ca4cbbc58cc.1667356813.git.nickyc975@zju.edu.cn
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-mq.c

index bae6f81..d4824b5 100644 (file)
@@ -3305,21 +3305,22 @@ static struct blk_mq_tags *blk_mq_alloc_rq_map(struct blk_mq_tag_set *set,
        tags->rqs = kcalloc_node(nr_tags, sizeof(struct request *),
                                 GFP_NOIO | __GFP_NOWARN | __GFP_NORETRY,
                                 node);
-       if (!tags->rqs) {
-               blk_mq_free_tags(tags);
-               return NULL;
-       }
+       if (!tags->rqs)
+               goto err_free_tags;
 
        tags->static_rqs = kcalloc_node(nr_tags, sizeof(struct request *),
                                        GFP_NOIO | __GFP_NOWARN | __GFP_NORETRY,
                                        node);
-       if (!tags->static_rqs) {
-               kfree(tags->rqs);
-               blk_mq_free_tags(tags);
-               return NULL;
-       }
+       if (!tags->static_rqs)
+               goto err_free_rqs;
 
        return tags;
+
+err_free_rqs:
+       kfree(tags->rqs);
+err_free_tags:
+       blk_mq_free_tags(tags);
+       return NULL;
 }
 
 static int blk_mq_init_request(struct blk_mq_tag_set *set, struct request *rq,