diff options
Diffstat (limited to 'mapfile.c')
-rw-r--r-- | mapfile.c | 14 |
1 files changed, 6 insertions, 8 deletions
@@ -43,6 +43,8 @@ * at compile time via MAP_DIR and MAP_FILE. */ #include "mdadm.h" +#include "xmalloc.h" + #include <sys/file.h> #include <ctype.h> @@ -339,18 +341,14 @@ struct map_ent *map_by_name(struct map_ent **map, char *name) */ static char *get_member_info(struct mdstat_ent *ent) { + char *subarray; - if (ent->metadata_version == NULL || - strncmp(ent->metadata_version, "external:", 9) != 0) + if (!is_mdstat_ent_subarray(ent)) return NULL; - if (is_subarray(&ent->metadata_version[9])) { - char *subarray; + subarray = strrchr(ent->metadata_version, '/'); - subarray = strrchr(ent->metadata_version, '/'); - return subarray + 1; - } - return NULL; + return subarray + 1; } void RebuildMap(void) |