Commit 84b8d0d7 authored by Chaitanya Kulkarni's avatar Chaitanya Kulkarni Committed by Jens Axboe

nvmet: use type-name map for ana states

Now that we have a generic type to name map for configfs, get rid of
the nvmet_ana_state_names structure and replace it with newly added
nvmet_type_name_map.
Signed-off-by: default avatarChaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 7e764179
...@@ -1153,10 +1153,7 @@ static const struct config_item_type nvmet_referrals_type = { ...@@ -1153,10 +1153,7 @@ static const struct config_item_type nvmet_referrals_type = {
.ct_group_ops = &nvmet_referral_group_ops, .ct_group_ops = &nvmet_referral_group_ops,
}; };
static struct { struct nvmet_type_name_map nvmet_ana_state[] = {
enum nvme_ana_state state;
const char *name;
} nvmet_ana_state_names[] = {
{ NVME_ANA_OPTIMIZED, "optimized" }, { NVME_ANA_OPTIMIZED, "optimized" },
{ NVME_ANA_NONOPTIMIZED, "non-optimized" }, { NVME_ANA_NONOPTIMIZED, "non-optimized" },
{ NVME_ANA_INACCESSIBLE, "inaccessible" }, { NVME_ANA_INACCESSIBLE, "inaccessible" },
...@@ -1171,10 +1168,9 @@ static ssize_t nvmet_ana_group_ana_state_show(struct config_item *item, ...@@ -1171,10 +1168,9 @@ static ssize_t nvmet_ana_group_ana_state_show(struct config_item *item,
enum nvme_ana_state state = grp->port->ana_state[grp->grpid]; enum nvme_ana_state state = grp->port->ana_state[grp->grpid];
int i; int i;
for (i = 0; i < ARRAY_SIZE(nvmet_ana_state_names); i++) { for (i = 0; i < ARRAY_SIZE(nvmet_ana_state); i++) {
if (state != nvmet_ana_state_names[i].state) if (state == nvmet_ana_state[i].type)
continue; return sprintf(page, "%s\n", nvmet_ana_state[i].name);
return sprintf(page, "%s\n", nvmet_ana_state_names[i].name);
} }
return sprintf(page, "\n"); return sprintf(page, "\n");
...@@ -1184,10 +1180,11 @@ static ssize_t nvmet_ana_group_ana_state_store(struct config_item *item, ...@@ -1184,10 +1180,11 @@ static ssize_t nvmet_ana_group_ana_state_store(struct config_item *item,
const char *page, size_t count) const char *page, size_t count)
{ {
struct nvmet_ana_group *grp = to_ana_group(item); struct nvmet_ana_group *grp = to_ana_group(item);
enum nvme_ana_state *ana_state = grp->port->ana_state;
int i; int i;
for (i = 0; i < ARRAY_SIZE(nvmet_ana_state_names); i++) { for (i = 0; i < ARRAY_SIZE(nvmet_ana_state); i++) {
if (sysfs_streq(page, nvmet_ana_state_names[i].name)) if (sysfs_streq(page, nvmet_ana_state[i].name))
goto found; goto found;
} }
...@@ -1196,10 +1193,9 @@ static ssize_t nvmet_ana_group_ana_state_store(struct config_item *item, ...@@ -1196,10 +1193,9 @@ static ssize_t nvmet_ana_group_ana_state_store(struct config_item *item,
found: found:
down_write(&nvmet_ana_sem); down_write(&nvmet_ana_sem);
grp->port->ana_state[grp->grpid] = nvmet_ana_state_names[i].state; ana_state[grp->grpid] = (enum nvme_ana_state) nvmet_ana_state[i].type;
nvmet_ana_chgcnt++; nvmet_ana_chgcnt++;
up_write(&nvmet_ana_sem); up_write(&nvmet_ana_sem);
nvmet_port_send_ana_event(grp->port); nvmet_port_send_ana_event(grp->port);
return count; return count;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment