module/raid: use raid_bdev_free() for cleanup in raid_bdev_create()

Change-Id: I73e283d4f5d98f2bb95d0dbab7e3abbb007134e4
Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
This commit is contained in:
Artur Paszkiewicz 2022-12-08 15:14:12 +01:00 committed by David Ko
parent ff9d703946
commit 69946f9eac

View File

@ -191,13 +191,13 @@ raid_bdev_cleanup(struct raid_bdev *raid_bdev)
}
TAILQ_REMOVE(&g_raid_bdev_list, raid_bdev, global_link);
free(raid_bdev->base_bdev_info);
}
static void
raid_bdev_free(struct raid_bdev *raid_bdev)
{
pthread_mutex_destroy(&raid_bdev->mutex);
free(raid_bdev->base_bdev_info);
free(raid_bdev->bdev.name);
free(raid_bdev);
}
@ -1039,13 +1039,20 @@ raid_bdev_create(const char *name, uint32_t strip_size, uint8_t num_base_bdevs,
return -ENOMEM;
}
rc = pthread_mutex_init(&raid_bdev->mutex, NULL);
if (rc) {
SPDK_ERRLOG("Cannot init mutex for raid bdev\n");
free(raid_bdev);
return rc;
}
raid_bdev->module = module;
raid_bdev->num_base_bdevs = num_base_bdevs;
raid_bdev->base_bdev_info = calloc(raid_bdev->num_base_bdevs,
sizeof(struct raid_base_bdev_info));
if (!raid_bdev->base_bdev_info) {
SPDK_ERRLOG("Unable able to allocate base bdev info\n");
free(raid_bdev);
raid_bdev_free(raid_bdev);
return -ENOMEM;
}
@ -1063,22 +1070,13 @@ raid_bdev_create(const char *name, uint32_t strip_size, uint8_t num_base_bdevs,
raid_bdev->min_base_bdevs_operational = min_operational;
raid_bdev->superblock_enabled = superblock;
TAILQ_INIT(&raid_bdev->suspend_ctx);
rc = pthread_mutex_init(&raid_bdev->mutex, NULL);
if (rc) {
SPDK_ERRLOG("Cannot init mutex for raid bdev\n");
free(raid_bdev->base_bdev_info);
free(raid_bdev);
return rc;
}
raid_bdev_gen = &raid_bdev->bdev;
raid_bdev_gen->name = strdup(name);
if (!raid_bdev_gen->name) {
SPDK_ERRLOG("Unable to allocate name for raid\n");
pthread_mutex_destroy(&raid_bdev->mutex);
free(raid_bdev->base_bdev_info);
free(raid_bdev);
raid_bdev_free(raid_bdev);
return -ENOMEM;
}