Provide a mdstat_ent to subarray helper

...before introducing another open coded instace of this conversion.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
Dan Williams 2010-11-18 10:21:29 +01:00 committed by NeilBrown
parent 87477e6d5e
commit e5408a3202
3 changed files with 10 additions and 8 deletions

View File

@ -511,7 +511,7 @@ static void manage_new(struct mdstat_ent *mdstat,
new->container = container;
inst = &mdstat->metadata_version[10+strlen(container->devname)+1];
inst = to_subarray(mdstat, container->devname);
new->info.array = mdi->array;
new->info.component_size = mdi->component_size;

View File

@ -1110,6 +1110,11 @@ static inline int is_subarray(char *vers)
return (*vers == '/' || *vers == '-');
}
static inline char *to_subarray(struct mdstat_ent *ent, char *container)
{
return &ent->metadata_version[10+strlen(container)+1];
}
#ifdef DEBUG
#define dprintf(fmt, arg...) \
fprintf(stderr, fmt, ##arg)

11
util.c
View File

@ -1449,14 +1449,11 @@ int is_subarray_active(char *subarray, char *container)
struct mdstat_ent *mdstat = mdstat_read(0, 0);
struct mdstat_ent *ent;
for (ent = mdstat; ent; ent = ent->next) {
if (is_container_member(ent, container)) {
char *inst = &ent->metadata_version[10+strlen(container)+1];
if (!subarray || strcmp(inst, subarray) == 0)
for (ent = mdstat; ent; ent = ent->next)
if (is_container_member(ent, container))
if (!subarray ||
strcmp(to_subarray(ent, container), subarray) == 0)
break;
}
}
free_mdstat(mdstat);