diff --git a/lib/bdev/raid/bdev_raid.c b/lib/bdev/raid/bdev_raid.c index 7e087d611..3699a7682 100644 --- a/lib/bdev/raid/bdev_raid.c +++ b/lib/bdev/raid/bdev_raid.c @@ -661,7 +661,7 @@ raid_bdev_free(void) * params: * raid_name - name for raid bdev. */ -static struct raid_bdev_config * +struct raid_bdev_config * raid_bdev_config_find_by_name(const char *raid_name) { struct raid_bdev_config *raid_cfg; diff --git a/lib/bdev/raid/bdev_raid.h b/lib/bdev/raid/bdev_raid.h index ba7a7c19e..17fb4d3ec 100644 --- a/lib/bdev/raid/bdev_raid.h +++ b/lib/bdev/raid/bdev_raid.h @@ -212,5 +212,6 @@ int raid_bdev_config_add(const char *raid_name, int strip_size, int num_base_bde int raid_bdev_config_add_base_bdev(struct raid_bdev_config *raid_cfg, const char *base_bdev_name, uint32_t slot); void raid_bdev_config_cleanup(struct raid_bdev_config *raid_cfg); +struct raid_bdev_config *raid_bdev_config_find_by_name(const char *raid_name); #endif // SPDK_BDEV_RAID_INTERNAL_H diff --git a/lib/bdev/raid/bdev_raid_rpc.c b/lib/bdev/raid/bdev_raid_rpc.c index 7c5ec5013..472a71222 100644 --- a/lib/bdev/raid/bdev_raid_rpc.c +++ b/lib/bdev/raid/bdev_raid_rpc.c @@ -385,13 +385,7 @@ spdk_rpc_destroy_raid_bdev(struct spdk_jsonrpc_request *request, const struct sp return; } - /* Find raid bdev config for this raid bdev */ - TAILQ_FOREACH(raid_cfg, &g_spdk_raid_config.raid_bdev_config_head, link) { - if (strcmp(raid_cfg->name, req.name) == 0) { - break; - } - } - + raid_cfg = raid_bdev_config_find_by_name(req.name); if (raid_cfg == NULL) { spdk_jsonrpc_send_error_response_fmt(request, SPDK_JSONRPC_ERROR_INVALID_PARAMS, "raid bdev %s is not found in config", req.name);