]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - managemon.c
imsm: FIX: map coping causes mdmon crash
[thirdparty/mdadm.git] / managemon.c
index 9cb8049971f4168828d3da202176f168a7705c74..269d06ed58d8bfd2ac7183f8b5e564d6fd2f4ea4 100644 (file)
@@ -448,6 +448,18 @@ static void manage_member(struct mdstat_ent *mdstat,
        else
                frozen = 1; /* can't read metadata_version assume the worst */
 
+       if (mdstat->level) {
+               int level = map_name(pers, mdstat->level);
+               if (a->info.array.level != level && level >= 0) {
+                       struct active_array *newa = duplicate_aa(a);
+                       if (newa) {
+                               newa->info.array.level = level;
+                               replace_array(a->container, a, newa);
+                               a = newa;
+                       }
+               }
+       }
+
        if (a->check_degraded && !frozen) {
                struct metadata_update *updates = NULL;
                struct mdinfo *newdev = NULL;