]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - maps.c
Make target to install binaries only
[thirdparty/mdadm.git] / maps.c
diff --git a/maps.c b/maps.c
index a2d293ba47369944d49dcd51cea8f5f403bedad7..a4fd27977c3685db7e23795a7582c016fb038d70 100644 (file)
--- a/maps.c
+++ b/maps.c
@@ -44,7 +44,7 @@ mapping_t r5layout[] = {
        { "ddf-N-restart", ALGORITHM_LEFT_ASYMMETRIC},
        { "ddf-N-continue", ALGORITHM_LEFT_SYMMETRIC},
 
-       { NULL, 0}
+       { NULL, UnSet }
 };
 mapping_t r6layout[] = {
        { "left-asymmetric", ALGORITHM_LEFT_ASYMMETRIC},
@@ -70,7 +70,19 @@ mapping_t r6layout[] = {
        { "right-symmetric-6", ALGORITHM_RIGHT_SYMMETRIC_6},
        { "parity-first-6", ALGORITHM_PARITY_0_6},
 
-       { NULL, 0}
+       { NULL, UnSet }
+};
+
+/* raid0 layout is only needed because of a bug in 3.14 which changed
+ * the effective layout of raid0 arrays with varying device sizes.
+ */
+mapping_t r0layout[] = {
+       { "original", RAID0_ORIG_LAYOUT},
+       { "alternate", RAID0_ALT_MULTIZONE_LAYOUT},
+       { "1", 1}, /* aka ORIG */
+       { "2", 2}, /* aka ALT */
+       { "dangerous", 0},
+       { NULL, UnSet},
 };
 
 mapping_t pers[] = {
@@ -93,7 +105,7 @@ mapping_t pers[] = {
        { "10", 10},
        { "faulty", LEVEL_FAULTY},
        { "container", LEVEL_CONTAINER},
-       { NULL, 0}
+       { NULL, UnSet }
 };
 
 mapping_t modes[] = {
@@ -106,7 +118,7 @@ mapping_t modes[] = {
        { "grow", GROW},
        { "incremental", INCREMENTAL},
        { "auto-detect", AUTODETECT},
-       { NULL, 0 }
+       { NULL, UnSet }
 };
 
 mapping_t faultylayout[] = {
@@ -127,7 +139,7 @@ mapping_t faultylayout[] = {
        { "flush", ClearFaults},
        { "none", ClearErrors},
        { "default", ClearErrors},
-       { NULL, 0}
+       { NULL, UnSet }
 };
 
 mapping_t consistency_policies[] = {
@@ -137,14 +149,10 @@ mapping_t consistency_policies[] = {
        { "bitmap", CONSISTENCY_POLICY_BITMAP},
        { "journal", CONSISTENCY_POLICY_JOURNAL},
        { "ppl", CONSISTENCY_POLICY_PPL},
-       { NULL, 0}
+       { NULL, CONSISTENCY_POLICY_UNKNOWN }
 };
 
 mapping_t sysfs_array_states[] = {
-       /*
-        * Beware map_name() uses strcmp() so active-idle must come before
-        * active, to be detected correctly.
-        */
        { "active-idle", ARRAY_ACTIVE_IDLE },
        { "active", ARRAY_ACTIVE },
        { "clear", ARRAY_CLEAR },
@@ -154,7 +162,8 @@ mapping_t sysfs_array_states[] = {
        { "read-auto", ARRAY_READ_AUTO },
        { "clean", ARRAY_CLEAN },
        { "write-pending", ARRAY_WRITE_PENDING },
-       { NULL, 0 }
+       { "broken", ARRAY_BROKEN },
+       { NULL, ARRAY_UNKNOWN_STATE }
 };
 
 char *map_num(mapping_t *map, int num)
@@ -169,10 +178,8 @@ char *map_num(mapping_t *map, int num)
 
 int map_name(mapping_t *map, char *name)
 {
-       while (map->name) {
-               if (strcmp(map->name, name)==0)
-                       return map->num;
+       while (map->name && strcmp(map->name, name) != 0)
                map++;
-       }
-       return UnSet;
+
+       return map->num;
 }