diff mbox series

nullblk: Fix cleanup order in null_add_dev() error path

Message ID 20240330005300.1503252-1-dlemoal@kernel.org (mailing list archive)
State New, archived
Headers show
Series nullblk: Fix cleanup order in null_add_dev() error path | expand

Commit Message

Damien Le Moal March 30, 2024, 12:53 a.m. UTC
In null_add_dev(), if an error happen after initializing the resources
for a zoned null block device, we must free these resources before
exiting the function. To ensure this, move the out_cleanup_zone label
after out_cleanup_disk as we jump to this latter label if an error
happens after calling null_init_zoned_dev().

Fixes: e440626b1caf ("null_blk: pass queue_limits to blk_mq_alloc_disk")
Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
---
 drivers/block/null_blk/main.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Christoph Hellwig March 30, 2024, 5:49 a.m. UTC | #1
On Sat, Mar 30, 2024 at 09:53:00AM +0900, Damien Le Moal wrote:
> In null_add_dev(), if an error happen after initializing the resources
> for a zoned null block device, we must free these resources before
> exiting the function. To ensure this, move the out_cleanup_zone label
> after out_cleanup_disk as we jump to this latter label if an error
> happens after calling null_init_zoned_dev().

Looks good:

Reviewed-by: Christoph Hellwig <hch@lst.de>
Jens Axboe March 30, 2024, 3:56 p.m. UTC | #2
On Sat, 30 Mar 2024 09:53:00 +0900, Damien Le Moal wrote:
> In null_add_dev(), if an error happen after initializing the resources
> for a zoned null block device, we must free these resources before
> exiting the function. To ensure this, move the out_cleanup_zone label
> after out_cleanup_disk as we jump to this latter label if an error
> happens after calling null_init_zoned_dev().
> 
> 
> [...]

Applied, thanks!

[1/1] nullblk: Fix cleanup order in null_add_dev() error path
      commit: a057e4036487351ad25002a88c75f7d195e36d79

Best regards,
diff mbox series

Patch

diff --git a/drivers/block/null_blk/main.c b/drivers/block/null_blk/main.c
index 71c39bcd872c..ed33cf7192d2 100644
--- a/drivers/block/null_blk/main.c
+++ b/drivers/block/null_blk/main.c
@@ -1965,10 +1965,10 @@  static int null_add_dev(struct nullb_device *dev)
 
 out_ida_free:
 	ida_free(&nullb_indexes, nullb->index);
-out_cleanup_zone:
-	null_free_zoned_dev(dev);
 out_cleanup_disk:
 	put_disk(nullb->disk);
+out_cleanup_zone:
+	null_free_zoned_dev(dev);
 out_cleanup_tags:
 	if (nullb->tag_set == &nullb->__tag_set)
 		blk_mq_free_tag_set(nullb->tag_set);