]> www.infradead.org Git - nvme.git/commitdiff
md/raid0: don't free conf on raid0_run failure
authorChristoph Hellwig <hch@lst.de>
Thu, 13 Jun 2024 08:48:12 +0000 (10:48 +0200)
committerJens Axboe <axboe@kernel.dk>
Fri, 14 Jun 2024 16:20:06 +0000 (10:20 -0600)
The core md code calls the ->free method which already frees conf.

Fixes: 0c031fd37f69 ("md: Move alloc/free acct bioset in to personality")
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: Yu Kuai <yukuai3@huawei.com>
Link: https://lore.kernel.org/r/20240613084839.1044015-3-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/md/raid0.c

index c5d4aeb68404c9cbd3f79797672013f965b45bbb..81c01347cd24e68475d8bb4795783a03d08c6853 100644 (file)
@@ -365,18 +365,13 @@ static sector_t raid0_size(struct mddev *mddev, sector_t sectors, int raid_disks
        return array_sectors;
 }
 
-static void free_conf(struct mddev *mddev, struct r0conf *conf)
-{
-       kfree(conf->strip_zone);
-       kfree(conf->devlist);
-       kfree(conf);
-}
-
 static void raid0_free(struct mddev *mddev, void *priv)
 {
        struct r0conf *conf = priv;
 
-       free_conf(mddev, conf);
+       kfree(conf->strip_zone);
+       kfree(conf->devlist);
+       kfree(conf);
 }
 
 static int raid0_set_limits(struct mddev *mddev)
@@ -415,7 +410,7 @@ static int raid0_run(struct mddev *mddev)
        if (!mddev_is_dm(mddev)) {
                ret = raid0_set_limits(mddev);
                if (ret)
-                       goto out_free_conf;
+                       return ret;
        }
 
        /* calculate array device size */
@@ -427,13 +422,7 @@ static int raid0_run(struct mddev *mddev)
 
        dump_zones(mddev);
 
-       ret = md_integrity_register(mddev);
-       if (ret)
-               goto out_free_conf;
-       return 0;
-out_free_conf:
-       free_conf(mddev, conf);
-       return ret;
+       return md_integrity_register(mddev);
 }
 
 /*