From 05f631337d25c8a3e58ee39b0c7f5f4254e22540 Mon Sep 17 00:00:00 2001 From: Surbhi Palande Date: Tue, 21 Sep 2010 17:36:07 +0300 Subject: [PATCH 01/19] map: rebuild map if it doesn't exist. LP: #550131 It is possible for some arrays to be created e.g. by initrd, and so not get copied on /var/run/mdadm/map on real rootfs. As "-I" depends on things being listed in 'map', we create it by scanning all devices if it doesn't exist. Signed-off-by: Surbhi Palande --- mapfile.c | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-) diff --git a/mapfile.c b/mapfile.c index 746073d..e5b69a0 100644 --- a/mapfile.c +++ b/mapfile.c @@ -113,8 +113,14 @@ void map_read(struct map_ent **melp) f = fopen("/var/run/mdadm/map", "r"); if (!f) f = fopen("/var/run/mdadm.map", "r"); - if (!f) - return; + if (!f) { + RebuildMap(); + f = fopen("/var/run/mdadm/map", "r"); + if (!f) + f = fopen("/var/run/mdadm.map", "r"); + if (!f) + return; + } while (fgets(buf, sizeof(buf), f)) { if (sscanf(buf, " md%1[p]%d %d.%d %x:%x:%x:%x %200s", -- 1.7.0.4