blk-mq: improve error handling in blk_mq_alloc_rq_map()
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>
This commit is contained in:
parent
98d81f0df7
commit
7edfd68165
|
@ -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,
|
||||
|
|
Loading…
Reference in New Issue