module/raid: remove redundant raid_bdev lists
Those lists match exactly the values of raid_bdev->state. Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com> Change-Id: I0e7fb84ef77036608afd3a71318032f536bff4e8 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14187 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Reviewed-by: Krzysztof Karas <krzysztof.karas@intel.com> Reviewed-by: Paul Luse <paul.e.luse@intel.com>
This commit is contained in:
parent
29784f35cd
commit
12ed89aca6
@ -20,23 +20,8 @@ struct raid_config g_raid_config = {
|
||||
.raid_bdev_config_head = TAILQ_HEAD_INITIALIZER(g_raid_config.raid_bdev_config_head),
|
||||
};
|
||||
|
||||
/*
|
||||
* List of raid bdev in configured list, these raid bdevs are registered with
|
||||
* bdev layer
|
||||
*/
|
||||
struct raid_configured_tailq g_raid_bdev_configured_list = TAILQ_HEAD_INITIALIZER(
|
||||
g_raid_bdev_configured_list);
|
||||
|
||||
/* List of raid bdev in configuring list */
|
||||
struct raid_configuring_tailq g_raid_bdev_configuring_list = TAILQ_HEAD_INITIALIZER(
|
||||
g_raid_bdev_configuring_list);
|
||||
|
||||
/* List of all raid bdevs */
|
||||
struct raid_all_tailq g_raid_bdev_list = TAILQ_HEAD_INITIALIZER(g_raid_bdev_list);
|
||||
|
||||
/* List of all raid bdevs that are offline */
|
||||
struct raid_offline_tailq g_raid_bdev_offline_list = TAILQ_HEAD_INITIALIZER(
|
||||
g_raid_bdev_offline_list);
|
||||
struct raid_all_tailq g_raid_bdev_list = TAILQ_HEAD_INITIALIZER(g_raid_bdev_list);
|
||||
|
||||
static TAILQ_HEAD(, raid_bdev_module) g_raid_modules = TAILQ_HEAD_INITIALIZER(g_raid_modules);
|
||||
|
||||
@ -190,13 +175,7 @@ raid_bdev_cleanup(struct raid_bdev *raid_bdev)
|
||||
SPDK_DEBUGLOG(bdev_raid, "raid_bdev_cleanup, %p name %s, state %u, config %p\n",
|
||||
raid_bdev,
|
||||
raid_bdev->bdev.name, raid_bdev->state, raid_bdev->config);
|
||||
if (raid_bdev->state == RAID_BDEV_STATE_CONFIGURING) {
|
||||
TAILQ_REMOVE(&g_raid_bdev_configuring_list, raid_bdev, state_link);
|
||||
} else if (raid_bdev->state == RAID_BDEV_STATE_OFFLINE) {
|
||||
TAILQ_REMOVE(&g_raid_bdev_offline_list, raid_bdev, state_link);
|
||||
} else {
|
||||
assert(0);
|
||||
}
|
||||
assert(raid_bdev->state != RAID_BDEV_STATE_ONLINE);
|
||||
TAILQ_REMOVE(&g_raid_bdev_list, raid_bdev, global_link);
|
||||
free(raid_bdev->base_bdev_info);
|
||||
if (raid_bdev->config) {
|
||||
@ -315,9 +294,7 @@ raid_bdev_destruct(void *ctxt)
|
||||
}
|
||||
|
||||
if (g_shutdown_started) {
|
||||
TAILQ_REMOVE(&g_raid_bdev_configured_list, raid_bdev, state_link);
|
||||
raid_bdev->state = RAID_BDEV_STATE_OFFLINE;
|
||||
TAILQ_INSERT_TAIL(&g_raid_bdev_offline_list, raid_bdev, state_link);
|
||||
}
|
||||
|
||||
if (raid_bdev->module->stop != NULL) {
|
||||
@ -1134,7 +1111,6 @@ raid_bdev_create(struct raid_bdev_config *raid_cfg)
|
||||
raid_bdev_gen->module = &g_raid_if;
|
||||
raid_bdev_gen->write_cache = 0;
|
||||
|
||||
TAILQ_INSERT_TAIL(&g_raid_bdev_configuring_list, raid_bdev, state_link);
|
||||
TAILQ_INSERT_TAIL(&g_raid_bdev_list, raid_bdev, global_link);
|
||||
|
||||
raid_cfg->raid_bdev = raid_bdev;
|
||||
@ -1262,8 +1238,6 @@ raid_bdev_configure(struct raid_bdev *raid_bdev)
|
||||
return rc;
|
||||
}
|
||||
SPDK_DEBUGLOG(bdev_raid, "raid bdev generic %p\n", raid_bdev_gen);
|
||||
TAILQ_REMOVE(&g_raid_bdev_configuring_list, raid_bdev, state_link);
|
||||
TAILQ_INSERT_TAIL(&g_raid_bdev_configured_list, raid_bdev, state_link);
|
||||
SPDK_DEBUGLOG(bdev_raid, "raid bdev is created with name %s, raid_bdev %p\n",
|
||||
raid_bdev_gen->name, raid_bdev);
|
||||
|
||||
@ -1294,10 +1268,8 @@ raid_bdev_deconfigure(struct raid_bdev *raid_bdev, raid_bdev_destruct_cb cb_fn,
|
||||
}
|
||||
|
||||
assert(raid_bdev->num_base_bdevs == raid_bdev->num_base_bdevs_discovered);
|
||||
TAILQ_REMOVE(&g_raid_bdev_configured_list, raid_bdev, state_link);
|
||||
raid_bdev->state = RAID_BDEV_STATE_OFFLINE;
|
||||
assert(raid_bdev->num_base_bdevs_discovered);
|
||||
TAILQ_INSERT_TAIL(&g_raid_bdev_offline_list, raid_bdev, state_link);
|
||||
SPDK_DEBUGLOG(bdev_raid, "raid bdev state changing from online to offline\n");
|
||||
|
||||
spdk_bdev_unregister(&raid_bdev->bdev, cb_fn, cb_arg);
|
||||
|
@ -94,9 +94,6 @@ struct raid_bdev {
|
||||
/* raid bdev device, this will get registered in bdev layer */
|
||||
struct spdk_bdev bdev;
|
||||
|
||||
/* link of raid bdev to link it to configured, configuring or offline list */
|
||||
TAILQ_ENTRY(raid_bdev) state_link;
|
||||
|
||||
/* link of raid bdev to link it to global raid bdev list */
|
||||
TAILQ_ENTRY(raid_bdev) global_link;
|
||||
|
||||
@ -207,16 +204,10 @@ struct raid_bdev_io_channel {
|
||||
struct spdk_io_channel *module_channel;
|
||||
};
|
||||
|
||||
/* TAIL heads for various raid bdev lists */
|
||||
TAILQ_HEAD(raid_configured_tailq, raid_bdev);
|
||||
TAILQ_HEAD(raid_configuring_tailq, raid_bdev);
|
||||
/* TAIL head for raid bdev list */
|
||||
TAILQ_HEAD(raid_all_tailq, raid_bdev);
|
||||
TAILQ_HEAD(raid_offline_tailq, raid_bdev);
|
||||
|
||||
extern struct raid_configured_tailq g_raid_bdev_configured_list;
|
||||
extern struct raid_configuring_tailq g_raid_bdev_configuring_list;
|
||||
extern struct raid_all_tailq g_raid_bdev_list;
|
||||
extern struct raid_offline_tailq g_raid_bdev_offline_list;
|
||||
extern struct raid_config g_raid_config;
|
||||
|
||||
typedef void (*raid_bdev_destruct_cb)(void *cb_ctx, int rc);
|
||||
|
@ -86,20 +86,11 @@ rpc_bdev_raid_get_bdevs(struct spdk_jsonrpc_request *request,
|
||||
spdk_json_write_array_begin(w);
|
||||
|
||||
/* Get raid bdev list based on the category requested */
|
||||
if (strcmp(req.category, "all") == 0) {
|
||||
TAILQ_FOREACH(raid_bdev, &g_raid_bdev_list, global_link) {
|
||||
spdk_json_write_string(w, raid_bdev->bdev.name);
|
||||
}
|
||||
} else if (strcmp(req.category, "online") == 0) {
|
||||
TAILQ_FOREACH(raid_bdev, &g_raid_bdev_configured_list, state_link) {
|
||||
spdk_json_write_string(w, raid_bdev->bdev.name);
|
||||
}
|
||||
} else if (strcmp(req.category, "configuring") == 0) {
|
||||
TAILQ_FOREACH(raid_bdev, &g_raid_bdev_configuring_list, state_link) {
|
||||
spdk_json_write_string(w, raid_bdev->bdev.name);
|
||||
}
|
||||
} else {
|
||||
TAILQ_FOREACH(raid_bdev, &g_raid_bdev_offline_list, state_link) {
|
||||
TAILQ_FOREACH(raid_bdev, &g_raid_bdev_list, global_link) {
|
||||
if (strcmp(req.category, "all") == 0 ||
|
||||
(strcmp(req.category, "configuring") == 0 && raid_bdev->state == RAID_BDEV_STATE_CONFIGURING) ||
|
||||
(strcmp(req.category, "online") == 0 && raid_bdev->state == RAID_BDEV_STATE_ONLINE) ||
|
||||
(strcmp(req.category, "offline") == 0 && raid_bdev->state == RAID_BDEV_STATE_OFFLINE)) {
|
||||
spdk_json_write_string(w, raid_bdev->bdev.name);
|
||||
}
|
||||
}
|
||||
|
@ -931,34 +931,6 @@ verify_raid_bdev(struct rpc_bdev_raid_create *r, bool presence, uint32_t raid_st
|
||||
} else {
|
||||
CU_ASSERT(pbdev_found == false);
|
||||
}
|
||||
pbdev_found = false;
|
||||
if (raid_state == RAID_BDEV_STATE_ONLINE) {
|
||||
TAILQ_FOREACH(pbdev, &g_raid_bdev_configured_list, state_link) {
|
||||
if (strcmp(pbdev->bdev.name, r->name) == 0) {
|
||||
pbdev_found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (raid_state == RAID_BDEV_STATE_CONFIGURING) {
|
||||
TAILQ_FOREACH(pbdev, &g_raid_bdev_configuring_list, state_link) {
|
||||
if (strcmp(pbdev->bdev.name, r->name) == 0) {
|
||||
pbdev_found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (raid_state == RAID_BDEV_STATE_OFFLINE) {
|
||||
TAILQ_FOREACH(pbdev, &g_raid_bdev_offline_list, state_link) {
|
||||
if (strcmp(pbdev->bdev.name, r->name) == 0) {
|
||||
pbdev_found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (presence == true) {
|
||||
CU_ASSERT(pbdev_found == true);
|
||||
} else {
|
||||
CU_ASSERT(pbdev_found == false);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
Loading…
Reference in New Issue
Block a user