Commit b39b6024 authored by Shuhei Matsumoto's avatar Shuhei Matsumoto Committed by Ben Walker
Browse files

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: default avatarShuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-on: https://review.gerrithub.io/422794


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: default avatarKunal Sablok <kunal.sablok@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
parent 485c4b13
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -159,7 +159,7 @@ raid_bdev_destroy_cb(void *io_device, void *ctx_buf)
 * returns:
 * none
 */
static void
void
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",
@@ -194,7 +194,7 @@ raid_bdev_cleanup(struct raid_bdev *raid_bdev)
 * 0 - success
 * non zero - failure
 */
static void
void
raid_bdev_free_base_bdev_resource(struct raid_bdev *raid_bdev, uint32_t base_bdev_slot)
{
	struct raid_base_bdev_info *info;
+2 −0
Original line number Diff line number Diff line
@@ -217,6 +217,8 @@ extern struct raid_config g_spdk_raid_config;

void raid_bdev_remove_base_bdev(void *ctx);
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_level, struct raid_bdev_config **_raid_cfg);
int raid_bdev_config_add_base_bdev(struct raid_bdev_config *raid_cfg,
+2 −13
Original line number Diff line number Diff line
@@ -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++) {
		assert(raid_bdev->base_bdev_info != NULL);
		if (raid_bdev->base_bdev_info[i].bdev) {
			/* Release base bdev related resources */
			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--;
			raid_bdev_free_base_bdev_resource(raid_bdev, i);
		}
	}
	/* Free raid */
	assert(raid_bdev->num_base_bdevs_discovered == 0);
	TAILQ_REMOVE(&g_spdk_raid_bdev_configuring_list, raid_bdev, link_specific_list);
	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;
	raid_bdev_cleanup(raid_bdev);
}

/*