bdev/raid: Use raid_cfg as a pointer to raid_bdev_config throughout

In bdev_raid.c and bdev_raid_rpc.c, to hold a pointer to
raid_bdev_config, some have used raid_cfg and other have used
raid_bdev_config.

raid_bdev_config is the name of the struct and using the name of
the struct as a pointer to it may cause any confusion.

Change-Id: Ic87ff04d58ea46c30081aaae8d9cda5a53135be9
Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-on: https://review.gerrithub.io/422922
Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Kunal Sablok <kunal.sablok@intel.com>
This commit is contained in:
Shuhei Matsumoto 2018-08-21 09:07:53 +09:00 committed by Ben Walker
parent ab9661c990
commit a74212733b
3 changed files with 45 additions and 43 deletions

View File

@ -789,7 +789,7 @@ static const struct spdk_bdev_fn_table g_raid_bdev_fn_table = {
* brief: * brief:
* raid_bdev_config_cleanup function is used to free memory for one raid_bdev in configuration * raid_bdev_config_cleanup function is used to free memory for one raid_bdev in configuration
* params: * params:
* raid_bdev_config - pointer to raid_bdev_config structure * raid_cfg - pointer to raid_bdev_config structure
* returns: * returns:
* none * none
*/ */
@ -840,11 +840,11 @@ raid_bdev_free(void)
* strip_size - strip size in KB * strip_size - strip size in KB
* num_base_bdevs - number of base bdevs. * num_base_bdevs - number of base bdevs.
* raid_level - raid level, only raid level 0 is supported. * raid_level - raid level, only raid level 0 is supported.
* _raid_bdev_config - Pointer to newly added configuration * _raid_cfg - Pointer to newly added configuration
*/ */
int int
raid_bdev_config_add(const char *raid_name, int strip_size, int num_base_bdevs, raid_bdev_config_add(const char *raid_name, int strip_size, int num_base_bdevs,
int raid_level, struct raid_bdev_config **_raid_bdev_config) int raid_level, struct raid_bdev_config **_raid_cfg)
{ {
struct raid_bdev_config *raid_cfg; struct raid_bdev_config *raid_cfg;
@ -883,7 +883,7 @@ raid_bdev_config_add(const char *raid_name, int strip_size, int num_base_bdevs,
TAILQ_INSERT_TAIL(&g_spdk_raid_config.raid_bdev_config_head, raid_cfg, link); TAILQ_INSERT_TAIL(&g_spdk_raid_config.raid_bdev_config_head, raid_cfg, link);
g_spdk_raid_config.total_raid_bdev++; g_spdk_raid_config.total_raid_bdev++;
*_raid_bdev_config = raid_cfg; *_raid_cfg = raid_cfg;
return 0; return 0;
} }
@ -960,7 +960,7 @@ raid_bdev_parse_raid(struct spdk_conf_section *conf_section)
int i, num_base_bdevs; int i, num_base_bdevs;
int raid_level; int raid_level;
const char *base_bdev_name; const char *base_bdev_name;
struct raid_bdev_config *raid_bdev_config; struct raid_bdev_config *raid_cfg;
int rc; int rc;
raid_name = spdk_conf_section_get_val(conf_section, "Name"); raid_name = spdk_conf_section_get_val(conf_section, "Name");
@ -988,7 +988,7 @@ raid_bdev_parse_raid(struct spdk_conf_section *conf_section)
raid_level); raid_level);
rc = raid_bdev_config_add(raid_name, strip_size, num_base_bdevs, raid_level, rc = raid_bdev_config_add(raid_name, strip_size, num_base_bdevs, raid_level,
&raid_bdev_config); &raid_cfg);
if (rc != 0) { if (rc != 0) {
SPDK_ERRLOG("Failed to add raid bdev config\n"); SPDK_ERRLOG("Failed to add raid bdev config\n");
return rc; return rc;
@ -1000,21 +1000,21 @@ raid_bdev_parse_raid(struct spdk_conf_section *conf_section)
break; break;
} }
if (i >= num_base_bdevs) { if (i >= num_base_bdevs) {
raid_bdev_config_cleanup(raid_bdev_config); raid_bdev_config_cleanup(raid_cfg);
SPDK_ERRLOG("Number of devices mentioned is more than count\n"); SPDK_ERRLOG("Number of devices mentioned is more than count\n");
return -1; return -1;
} }
rc = raid_bdev_config_add_base_bdev(raid_bdev_config, base_bdev_name, i); rc = raid_bdev_config_add_base_bdev(raid_cfg, base_bdev_name, i);
if (rc != 0) { if (rc != 0) {
raid_bdev_config_cleanup(raid_bdev_config); raid_bdev_config_cleanup(raid_cfg);
SPDK_ERRLOG("Failed to add base bdev to raid bdev config\n"); SPDK_ERRLOG("Failed to add base bdev to raid bdev config\n");
return rc; return rc;
} }
} }
if (i != raid_bdev_config->num_base_bdevs) { if (i != raid_cfg->num_base_bdevs) {
raid_bdev_config_cleanup(raid_bdev_config); raid_bdev_config_cleanup(raid_cfg);
SPDK_ERRLOG("Number of devices mentioned is less than count\n"); SPDK_ERRLOG("Number of devices mentioned is less than count\n");
return -1; return -1;
} }
@ -1106,7 +1106,7 @@ raid_bdev_get_ctx_size(void)
* claimed by raid bdev or not. * claimed by raid bdev or not.
* params: * params:
* bdev_name - represents base bdev name * bdev_name - represents base bdev name
* raid_bdev_config - pointer to raid bdev config parsed from config file * _raid_cfg - pointer to raid bdev config parsed from config file
* base_bdev_slot - if bdev can be claimed, it represents the base_bdev correct * base_bdev_slot - if bdev can be claimed, it represents the base_bdev correct
* slot. This field is only valid if return value of this function is true * slot. This field is only valid if return value of this function is true
* returns: * returns:
@ -1114,7 +1114,7 @@ raid_bdev_get_ctx_size(void)
* false - if bdev can't be claimed * false - if bdev can't be claimed
*/ */
static bool static bool
raid_bdev_can_claim_bdev(const char *bdev_name, struct raid_bdev_config **raid_bdev_config, raid_bdev_can_claim_bdev(const char *bdev_name, struct raid_bdev_config **_raid_cfg,
uint32_t *base_bdev_slot) uint32_t *base_bdev_slot)
{ {
bool rv = false; bool rv = false;
@ -1129,7 +1129,7 @@ raid_bdev_can_claim_bdev(const char *bdev_name, struct raid_bdev_config **raid_b
* this base bdev should be inserted in raid bdev * this base bdev should be inserted in raid bdev
*/ */
if (!strcmp(bdev_name, raid_cfg->base_bdev[i].bdev_name)) { if (!strcmp(bdev_name, raid_cfg->base_bdev[i].bdev_name)) {
*raid_bdev_config = raid_cfg; *_raid_cfg = raid_cfg;
*base_bdev_slot = i; *base_bdev_slot = i;
rv = true; rv = true;
break;; break;;
@ -1463,7 +1463,7 @@ raid_bdev_remove_base_bdev(void *ctx)
int int
raid_bdev_add_base_device(struct spdk_bdev *bdev) raid_bdev_add_base_device(struct spdk_bdev *bdev)
{ {
struct raid_bdev_config *raid_bdev_config = NULL; struct raid_bdev_config *raid_cfg = NULL;
struct raid_bdev *raid_bdev; struct raid_bdev *raid_bdev;
uint32_t base_bdev_slot; uint32_t base_bdev_slot;
bool can_claim; bool can_claim;
@ -1471,22 +1471,22 @@ raid_bdev_add_base_device(struct spdk_bdev *bdev)
SPDK_DEBUGLOG(SPDK_LOG_BDEV_RAID, "raid_bdev_examine %p\n", bdev); SPDK_DEBUGLOG(SPDK_LOG_BDEV_RAID, "raid_bdev_examine %p\n", bdev);
can_claim = raid_bdev_can_claim_bdev(bdev->name, &raid_bdev_config, &base_bdev_slot); can_claim = raid_bdev_can_claim_bdev(bdev->name, &raid_cfg, &base_bdev_slot);
if (!can_claim) { if (!can_claim) {
SPDK_DEBUGLOG(SPDK_LOG_BDEV_RAID, "bdev %s can't be claimed\n", bdev->name); SPDK_DEBUGLOG(SPDK_LOG_BDEV_RAID, "bdev %s can't be claimed\n", bdev->name);
return -1; return -1;
} }
assert(raid_bdev_config); assert(raid_cfg);
raid_bdev = raid_bdev_config->raid_bdev; raid_bdev = raid_cfg->raid_bdev;
if (!raid_bdev) { if (!raid_bdev) {
rc = raid_bdev_create(raid_bdev_config, &raid_bdev); rc = raid_bdev_create(raid_cfg, &raid_bdev);
if (rc != 0) { if (rc != 0) {
SPDK_ERRLOG("Failed to create raid bdev for bdev '%s'\n", bdev->name); SPDK_ERRLOG("Failed to create raid bdev for bdev '%s'\n", bdev->name);
return -1; return -1;
} }
raid_bdev_config->raid_bdev = raid_bdev; raid_cfg->raid_bdev = raid_bdev;
} }
rc = raid_bdev_alloc_base_bdev_resource(raid_bdev, bdev, base_bdev_slot); rc = raid_bdev_alloc_base_bdev_resource(raid_bdev, bdev, base_bdev_slot);

View File

@ -218,7 +218,7 @@ 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);
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_bdev_config); 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,
const char *base_bdev_name, uint32_t slot); const char *base_bdev_name, uint32_t slot);
void raid_bdev_config_cleanup(struct raid_bdev_config *raid_cfg); void raid_bdev_config_cleanup(struct raid_bdev_config *raid_cfg);

View File

@ -41,7 +41,7 @@
#define RPC_MAX_BASE_BDEVS 255 #define RPC_MAX_BASE_BDEVS 255
static void raid_bdev_config_destroy(struct raid_bdev_config *raid_bdev_config); static void raid_bdev_config_destroy(struct raid_bdev_config *raid_cfg);
SPDK_LOG_REGISTER_COMPONENT("raidrpc", SPDK_LOG_RAID_RPC) SPDK_LOG_REGISTER_COMPONENT("raidrpc", SPDK_LOG_RAID_RPC)
@ -249,12 +249,12 @@ static const struct spdk_json_object_decoder rpc_construct_raid_bdev_decoders[]
* non NULL - raid present, returns raid_bdev * non NULL - raid present, returns raid_bdev
*/ */
static void static void
check_and_remove_raid_bdev(struct raid_bdev_config *raid_bdev_config) check_and_remove_raid_bdev(struct raid_bdev_config *raid_cfg)
{ {
struct raid_bdev *raid_bdev; struct raid_bdev *raid_bdev;
/* Get the raid structured allocated if exists */ /* Get the raid structured allocated if exists */
raid_bdev = raid_bdev_config->raid_bdev; raid_bdev = raid_cfg->raid_bdev;
if (raid_bdev == NULL) { if (raid_bdev == NULL) {
return; return;
} }
@ -282,7 +282,7 @@ check_and_remove_raid_bdev(struct raid_bdev_config *raid_bdev_config)
TAILQ_REMOVE(&g_spdk_raid_bdev_list, raid_bdev, link_global_list); TAILQ_REMOVE(&g_spdk_raid_bdev_list, raid_bdev, link_global_list);
free(raid_bdev->base_bdev_info); free(raid_bdev->base_bdev_info);
free(raid_bdev); free(raid_bdev);
raid_bdev_config->raid_bdev = NULL; raid_cfg->raid_bdev = NULL;
} }
/* /*
@ -301,7 +301,7 @@ spdk_rpc_construct_raid_bdev(struct spdk_jsonrpc_request *request,
{ {
struct rpc_construct_raid_bdev req = {}; struct rpc_construct_raid_bdev req = {};
struct spdk_json_write_ctx *w; struct spdk_json_write_ctx *w;
struct raid_bdev_config *raid_bdev_config; struct raid_bdev_config *raid_cfg;
struct raid_bdev *raid_bdev; struct raid_bdev *raid_bdev;
struct spdk_bdev *base_bdev; struct spdk_bdev *base_bdev;
int rc; int rc;
@ -337,7 +337,7 @@ spdk_rpc_construct_raid_bdev(struct spdk_jsonrpc_request *request,
} }
rc = raid_bdev_config_add(req.name, req.strip_size, req.base_bdevs.num_base_bdevs, req.raid_level, rc = raid_bdev_config_add(req.name, req.strip_size, req.base_bdevs.num_base_bdevs, req.raid_level,
&raid_bdev_config); &raid_cfg);
if (rc != 0) { if (rc != 0) {
spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INTERNAL_ERROR, spdk_strerror(-rc)); spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INTERNAL_ERROR, spdk_strerror(-rc));
free_rpc_construct_raid_bdev(&req); free_rpc_construct_raid_bdev(&req);
@ -345,21 +345,21 @@ spdk_rpc_construct_raid_bdev(struct spdk_jsonrpc_request *request,
} }
for (size_t i = 0; i < req.base_bdevs.num_base_bdevs; i++) { for (size_t i = 0; i < req.base_bdevs.num_base_bdevs; i++) {
rc = raid_bdev_config_add_base_bdev(raid_bdev_config, req.base_bdevs.base_bdevs[i], i); rc = raid_bdev_config_add_base_bdev(raid_cfg, req.base_bdevs.base_bdevs[i], i);
if (rc != 0) { if (rc != 0) {
raid_bdev_config_cleanup(raid_bdev_config); raid_bdev_config_cleanup(raid_cfg);
spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INTERNAL_ERROR, spdk_strerror(-rc)); spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INTERNAL_ERROR, spdk_strerror(-rc));
free_rpc_construct_raid_bdev(&req); free_rpc_construct_raid_bdev(&req);
return; return;
} }
} }
for (size_t i = 0; i < raid_bdev_config->num_base_bdevs; i++) { for (size_t i = 0; i < raid_cfg->num_base_bdevs; i++) {
/* Check if base_bdev exists already, if not fail the command */ /* Check if base_bdev exists already, if not fail the command */
base_bdev = spdk_bdev_get_by_name(req.base_bdevs.base_bdevs[i]); base_bdev = spdk_bdev_get_by_name(req.base_bdevs.base_bdevs[i]);
if (base_bdev == NULL) { if (base_bdev == NULL) {
check_and_remove_raid_bdev(raid_bdev_config); check_and_remove_raid_bdev(raid_cfg);
raid_bdev_config_cleanup(raid_bdev_config); raid_bdev_config_cleanup(raid_cfg);
spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INTERNAL_ERROR, "base bdev not found"); spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INTERNAL_ERROR, "base bdev not found");
free_rpc_construct_raid_bdev(&req); free_rpc_construct_raid_bdev(&req);
return; return;
@ -371,8 +371,8 @@ spdk_rpc_construct_raid_bdev(struct spdk_jsonrpc_request *request,
* by some other module * by some other module
*/ */
if (raid_bdev_add_base_device(base_bdev)) { if (raid_bdev_add_base_device(base_bdev)) {
check_and_remove_raid_bdev(raid_bdev_config); check_and_remove_raid_bdev(raid_cfg);
raid_bdev_config_cleanup(raid_bdev_config); raid_bdev_config_cleanup(raid_cfg);
spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INTERNAL_ERROR, spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INTERNAL_ERROR,
"base bdev can't be added because of either memory allocation failed or not able to claim"); "base bdev can't be added because of either memory allocation failed or not able to claim");
free_rpc_construct_raid_bdev(&req); free_rpc_construct_raid_bdev(&req);
@ -439,7 +439,8 @@ raid_bdev_config_destroy_check_raid_bdev_exists(void *arg)
assert(raid_cfg != NULL); assert(raid_cfg != NULL);
if (raid_cfg->raid_bdev != NULL) { if (raid_cfg->raid_bdev != NULL) {
/* If raid bdev still exists, schedule event and come back later */ /* If raid bdev still exists, schedule event and come back later */
spdk_thread_send_msg(spdk_get_thread(), raid_bdev_config_destroy_check_raid_bdev_exists, raid_cfg); spdk_thread_send_msg(spdk_get_thread(), raid_bdev_config_destroy_check_raid_bdev_exists,
raid_cfg);
return; return;
} else { } else {
/* If raid bdev does not exist now, go for raid bdev config cleanup */ /* If raid bdev does not exist now, go for raid bdev config cleanup */
@ -464,7 +465,8 @@ raid_bdev_config_destroy(struct raid_bdev_config *raid_cfg)
* If raid bdev exists for this config, wait for raid bdev to get * If raid bdev exists for this config, wait for raid bdev to get
* destroyed and come back later * destroyed and come back later
*/ */
spdk_thread_send_msg(spdk_get_thread(), raid_bdev_config_destroy_check_raid_bdev_exists, raid_cfg); spdk_thread_send_msg(spdk_get_thread(), raid_bdev_config_destroy_check_raid_bdev_exists,
raid_cfg);
return; return;
} }
@ -487,7 +489,7 @@ spdk_rpc_destroy_raid_bdev(struct spdk_jsonrpc_request *request, const struct sp
{ {
struct rpc_destroy_raid_bdev req = {}; struct rpc_destroy_raid_bdev req = {};
struct spdk_json_write_ctx *w; struct spdk_json_write_ctx *w;
struct raid_bdev_config *raid_bdev_config = NULL; struct raid_bdev_config *raid_cfg = NULL;
struct spdk_bdev *base_bdev; struct spdk_bdev *base_bdev;
if (spdk_json_decode_object(params, rpc_destroy_raid_bdev_decoders, if (spdk_json_decode_object(params, rpc_destroy_raid_bdev_decoders,
@ -499,13 +501,13 @@ spdk_rpc_destroy_raid_bdev(struct spdk_jsonrpc_request *request, const struct sp
} }
/* Find raid bdev config for this raid bdev */ /* Find raid bdev config for this raid bdev */
TAILQ_FOREACH(raid_bdev_config, &g_spdk_raid_config.raid_bdev_config_head, link) { TAILQ_FOREACH(raid_cfg, &g_spdk_raid_config.raid_bdev_config_head, link) {
if (strcmp(raid_bdev_config->name, req.name) == 0) { if (strcmp(raid_cfg->name, req.name) == 0) {
break; break;
} }
} }
if (raid_bdev_config == NULL) { if (raid_cfg == NULL) {
spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INVALID_PARAMS, spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INVALID_PARAMS,
"raid bdev name not found"); "raid bdev name not found");
free_rpc_destroy_raid_bdev(&req); free_rpc_destroy_raid_bdev(&req);
@ -513,8 +515,8 @@ spdk_rpc_destroy_raid_bdev(struct spdk_jsonrpc_request *request, const struct sp
} }
/* Remove all the base bdevs from this raid bdev before destroying the raid bdev */ /* Remove all the base bdevs from this raid bdev before destroying the raid bdev */
for (uint32_t i = 0; i < raid_bdev_config->num_base_bdevs; i++) { for (uint32_t i = 0; i < raid_cfg->num_base_bdevs; i++) {
base_bdev = spdk_bdev_get_by_name(raid_bdev_config->base_bdev[i].bdev_name); base_bdev = spdk_bdev_get_by_name(raid_cfg->base_bdev[i].bdev_name);
if (base_bdev != NULL) { if (base_bdev != NULL) {
raid_bdev_remove_base_bdev(base_bdev); raid_bdev_remove_base_bdev(base_bdev);
} }
@ -524,7 +526,7 @@ spdk_rpc_destroy_raid_bdev(struct spdk_jsonrpc_request *request, const struct sp
* Call to destroy the raid bdev, but it will only destroy raid bdev if underlying * Call to destroy the raid bdev, but it will only destroy raid bdev if underlying
* cleanup is done * cleanup is done
*/ */
raid_bdev_config_destroy(raid_bdev_config); raid_bdev_config_destroy(raid_cfg);
free_rpc_destroy_raid_bdev(&req); free_rpc_destroy_raid_bdev(&req);