]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - mapfile.c
RebuildMap: handle missing disks
[thirdparty/mdadm.git] / mapfile.c
index ca7072ecf7219c2a5f6f531d36b68a272f479ea8..f27623221ce9e706cec05d29d0140447bcc7e3fa 100644 (file)
--- a/mapfile.c
+++ b/mapfile.c
@@ -294,9 +294,12 @@ void RebuildMap(void)
        int mdp = get_mdp_major();
 
        for (md = mdstat ; md ; md = md->next) {
-               struct mdinfo *sra = sysfs_read(-1, md->devnum, GET_DEVS);
+               struct mdinfo *sra = sysfs_read(-1, md->devnum, GET_DEVS|SKIP_GONE_DEVS);
                struct mdinfo *sd;
 
+               if (!sra)
+                       continue;
+
                for (sd = sra->devs ; sd ; sd = sd->next) {
                        char dn[30];
                        int dfd;