From e5408a3202c09267f780d53334c369793534a7e8 Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Thu, 18 Nov 2010 10:21:29 +0100 Subject: [PATCH] Provide a mdstat_ent to subarray helper ...before introducing another open coded instace of this conversion. Signed-off-by: Dan Williams Signed-off-by: NeilBrown --- managemon.c | 2 +- mdadm.h | 5 +++++ util.c | 11 ++++------- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/managemon.c b/managemon.c index b6f9925..fbf6188 100644 --- a/managemon.c +++ b/managemon.c @@ -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; diff --git a/mdadm.h b/mdadm.h index 22e3d2c..a44bb2a 100644 --- a/mdadm.h +++ b/mdadm.h @@ -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) diff --git a/util.c b/util.c index 1ecce3b..ad2ec92 100644 --- a/util.c +++ b/util.c @@ -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);