X-Git-Url: http://git.ipfire.org/?p=thirdparty%2Fmdadm.git;a=blobdiff_plain;f=config.c;fp=config.c;h=5c8b03a3838d7a1548aef5a2b326663ef097b399;hp=5cf6ae5f1043f7dff1b292d3619bcb2e7b7f0a59;hb=eb2306f8411070bc7bcd46ad8fee0f02c826380a;hpb=babb8dd4274c80b08af3f583a136a9f12e9b5f69 diff --git a/config.c b/config.c index 5cf6ae5f..5c8b03a3 100644 --- a/config.c +++ b/config.c @@ -154,6 +154,7 @@ struct mddev_dev *load_containers(void) struct mdstat_ent *ent; struct mddev_dev *d; struct mddev_dev *rv = NULL; + struct map_ent *map = NULL, *me; if (!mdstat) return NULL; @@ -164,7 +165,10 @@ struct mddev_dev *load_containers(void) !is_subarray(&ent->metadata_version[9])) { d = xmalloc(sizeof(*d)); memset(d, 0, sizeof(*d)); - if (asprintf(&d->devname, "/dev/%s", ent->dev) < 0) { + me = map_by_devnm(&map, ent->dev); + if (me) + d->devname = xstrdup(me->path); + else if (asprintf(&d->devname, "/dev/%s", ent->dev) < 0) { free(d); continue; } @@ -172,6 +176,7 @@ struct mddev_dev *load_containers(void) rv = d; } free_mdstat(mdstat); + map_free(map); return rv; }