bdev/raid: Refactor helper function check_and_remove_raid_bdev()
Other helper functions raid_bdev_free_base_bdev_resource() and raid_bdev_cleanup() can be used in check_and_remove_raid_bdev(). Change-Id: I24ce02371f5bb29c3b6111da4475a9ad08e65c21 Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-on: https://review.gerrithub.io/422794 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Kunal Sablok <kunal.sablok@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
parent
485c4b1346
commit
b39b6024b5
@ -159,7 +159,7 @@ raid_bdev_destroy_cb(void *io_device, void *ctx_buf)
|
|||||||
* returns:
|
* returns:
|
||||||
* none
|
* none
|
||||||
*/
|
*/
|
||||||
static void
|
void
|
||||||
raid_bdev_cleanup(struct raid_bdev *raid_bdev)
|
raid_bdev_cleanup(struct raid_bdev *raid_bdev)
|
||||||
{
|
{
|
||||||
SPDK_DEBUGLOG(SPDK_LOG_BDEV_RAID, "raid_bdev_cleanup, %p name %s, state %u, config %p\n",
|
SPDK_DEBUGLOG(SPDK_LOG_BDEV_RAID, "raid_bdev_cleanup, %p name %s, state %u, config %p\n",
|
||||||
@ -194,7 +194,7 @@ raid_bdev_cleanup(struct raid_bdev *raid_bdev)
|
|||||||
* 0 - success
|
* 0 - success
|
||||||
* non zero - failure
|
* non zero - failure
|
||||||
*/
|
*/
|
||||||
static void
|
void
|
||||||
raid_bdev_free_base_bdev_resource(struct raid_bdev *raid_bdev, uint32_t base_bdev_slot)
|
raid_bdev_free_base_bdev_resource(struct raid_bdev *raid_bdev, uint32_t base_bdev_slot)
|
||||||
{
|
{
|
||||||
struct raid_base_bdev_info *info;
|
struct raid_base_bdev_info *info;
|
||||||
|
@ -217,6 +217,8 @@ extern struct raid_config g_spdk_raid_config;
|
|||||||
|
|
||||||
void raid_bdev_remove_base_bdev(void *ctx);
|
void raid_bdev_remove_base_bdev(void *ctx);
|
||||||
int raid_bdev_add_base_device(struct spdk_bdev *bdev);
|
int raid_bdev_add_base_device(struct spdk_bdev *bdev);
|
||||||
|
void raid_bdev_free_base_bdev_resource(struct raid_bdev *raid_bdev, uint32_t slot);
|
||||||
|
void raid_bdev_cleanup(struct raid_bdev *raid_bdev);
|
||||||
int raid_bdev_config_add(const char *raid_name, int strip_size, int num_base_bdevs,
|
int raid_bdev_config_add(const char *raid_name, int strip_size, int num_base_bdevs,
|
||||||
int raid_level, struct raid_bdev_config **_raid_cfg);
|
int raid_level, struct raid_bdev_config **_raid_cfg);
|
||||||
int raid_bdev_config_add_base_bdev(struct raid_bdev_config *raid_cfg,
|
int raid_bdev_config_add_base_bdev(struct raid_bdev_config *raid_cfg,
|
||||||
|
@ -267,22 +267,11 @@ check_and_remove_raid_bdev(struct raid_bdev_config *raid_cfg)
|
|||||||
for (uint32_t i = 0; i < raid_bdev->num_base_bdevs; i++) {
|
for (uint32_t i = 0; i < raid_bdev->num_base_bdevs; i++) {
|
||||||
assert(raid_bdev->base_bdev_info != NULL);
|
assert(raid_bdev->base_bdev_info != NULL);
|
||||||
if (raid_bdev->base_bdev_info[i].bdev) {
|
if (raid_bdev->base_bdev_info[i].bdev) {
|
||||||
/* Release base bdev related resources */
|
raid_bdev_free_base_bdev_resource(raid_bdev, i);
|
||||||
spdk_bdev_module_release_bdev(raid_bdev->base_bdev_info[i].bdev);
|
|
||||||
spdk_bdev_close(raid_bdev->base_bdev_info[i].desc);
|
|
||||||
raid_bdev->base_bdev_info[i].desc = NULL;
|
|
||||||
raid_bdev->base_bdev_info[i].bdev = NULL;
|
|
||||||
assert(raid_bdev->num_base_bdevs_discovered);
|
|
||||||
raid_bdev->num_base_bdevs_discovered--;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* Free raid */
|
|
||||||
assert(raid_bdev->num_base_bdevs_discovered == 0);
|
assert(raid_bdev->num_base_bdevs_discovered == 0);
|
||||||
TAILQ_REMOVE(&g_spdk_raid_bdev_configuring_list, raid_bdev, link_specific_list);
|
raid_bdev_cleanup(raid_bdev);
|
||||||
TAILQ_REMOVE(&g_spdk_raid_bdev_list, raid_bdev, link_global_list);
|
|
||||||
free(raid_bdev->base_bdev_info);
|
|
||||||
free(raid_bdev);
|
|
||||||
raid_cfg->raid_bdev = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user