Skip to content

Commit 0dfa065

Browse files
committed
md/raid0: don't free conf on raid0_run failure
JIRA: https://issues.redhat.com/browse/RHEL-83988 commit d11854e Author: Christoph Hellwig <[email protected]> Date: Thu Jun 13 10:48:12 2024 +0200 md/raid0: don't free conf on raid0_run failure The core md code calls the ->free method which already frees conf. Fixes: 0c031fd ("md: Move alloc/free acct bioset in to personality") Signed-off-by: Christoph Hellwig <[email protected]> Reviewed-by: Martin K. Petersen <[email protected]> Reviewed-by: Yu Kuai <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jens Axboe <[email protected]> Signed-off-by: Nigel Croxon <[email protected]>
1 parent 0b56c4c commit 0dfa065

File tree

1 file changed

+5
-16
lines changed

1 file changed

+5
-16
lines changed

drivers/md/raid0.c

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -365,18 +365,13 @@ static sector_t raid0_size(struct mddev *mddev, sector_t sectors, int raid_disks
365365
return array_sectors;
366366
}
367367

368-
static void free_conf(struct mddev *mddev, struct r0conf *conf)
369-
{
370-
kfree(conf->strip_zone);
371-
kfree(conf->devlist);
372-
kfree(conf);
373-
}
374-
375368
static void raid0_free(struct mddev *mddev, void *priv)
376369
{
377370
struct r0conf *conf = priv;
378371

379-
free_conf(mddev, conf);
372+
kfree(conf->strip_zone);
373+
kfree(conf->devlist);
374+
kfree(conf);
380375
}
381376

382377
static int raid0_set_limits(struct mddev *mddev)
@@ -419,7 +414,7 @@ static int raid0_run(struct mddev *mddev)
419414
if (!mddev_is_dm(mddev)) {
420415
ret = raid0_set_limits(mddev);
421416
if (ret)
422-
goto out_free_conf;
417+
return ret;
423418
}
424419

425420
/* calculate array device size */
@@ -431,13 +426,7 @@ static int raid0_run(struct mddev *mddev)
431426

432427
dump_zones(mddev);
433428

434-
ret = md_integrity_register(mddev);
435-
if (ret)
436-
goto out_free_conf;
437-
return 0;
438-
out_free_conf:
439-
free_conf(mddev, conf);
440-
return ret;
429+
return md_integrity_register(mddev);
441430
}
442431

443432
/*

0 commit comments

Comments
 (0)