2022-11-02 03:17:20

by Jinlong Chen

[permalink] [raw]
Subject: [PATCH v3 0/2] some random cleanups for blk-mq.c

Patch 1 improves the error handling blk_mq_alloc_rq_map(). Patch 2
improves readability of blk_mq_alloc_cached_request().

Changes in v3:
- add Reviewed-by: tag from Christoph

Changes in v2:
- drop wrong and worthless patches, suggested by Christoph, Jens and
Chaitanya
- remove silly goto-return-NULL in patch 1 (patch 2 originally), suggested
by Christoph and Jens

Jinlong Chen (2):
blk-mq: improve error handling in blk_mq_alloc_rq_map()
blk-mq: use if-else instead of goto in blk_mq_alloc_cached_request()

block/blk-mq.c | 46 ++++++++++++++++++++++++----------------------
1 file changed, 24 insertions(+), 22 deletions(-)

--
2.31.1



2022-11-02 04:16:03

by Jinlong Chen

[permalink] [raw]
Subject: [PATCH v3 1/2] 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 <[email protected]>
---
block/blk-mq.c | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/block/blk-mq.c b/block/blk-mq.c
index 623e8a506539..453ad445a6bd 100644
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -3274,21 +3274,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,
--
2.31.1


2022-11-02 06:10:23

by Chaitanya Kulkarni

[permalink] [raw]
Subject: Re: [PATCH v3 1/2] blk-mq: improve error handling in blk_mq_alloc_rq_map()

On 11/1/22 20:06, Jinlong Chen wrote:
> Use goto-style error handling like we do elsewhere in the kernel.
>
> Signed-off-by: Jinlong Chen <[email protected]>
> ---

since all to blk_mq_free_tags is duplicated in the code this seems
to be the right thing to do.

Reviewed-by: Chaitanya Kulkarni <[email protected]>

-ck