]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
imsm: FIX: Just created redundant array is not in uninitialized state
authorAdam Kwolek <adam.kwolek@intel.com>
Tue, 6 Dec 2011 00:44:07 +0000 (11:44 +1100)
committerNeilBrown <neilb@suse.de>
Tue, 6 Dec 2011 00:44:07 +0000 (11:44 +1100)
When redundant array (e.g. raid5) is created metadata shows it is in
normal state. Initialization process is showed in metadata as rebuild from normal
to normal state. Redundant array should be initially in uninitialized state
before it's initialization.

Add code to put array in uninitialized state upon array creation.

Signed-off-by: Adam Kwolek <adam.kwolek@intel.com>
Signed-off-by: NeilBrown <neilb@suse.de>
super-intel.c

index b6be1eb43a6967595f8011c565e8bf9d3645cb7c..1960ebfc36af755c86314c9dd476ccd0a15dbfe6 100644 (file)
@@ -4333,7 +4333,11 @@ static int init_super_imsm_volume(struct supertype *st, mdu_array_info_t *info,
        map->blocks_per_member = __cpu_to_le32(info_to_blocks_per_member(info));
        map->blocks_per_strip = __cpu_to_le16(info_to_blocks_per_strip(info));
        map->failed_disk_num = ~0;
-       map->map_state = info->failed_disks ? IMSM_T_STATE_DEGRADED : IMSM_T_STATE_NORMAL;
+       if (info->level > 0)
+               map->map_state = IMSM_T_STATE_UNINITIALIZED;
+       else
+               map->map_state = info->failed_disks ? IMSM_T_STATE_FAILED :
+                                                     IMSM_T_STATE_NORMAL;
        map->ddf = 1;
 
        if (info->level == 1 && info->raid_disks > 2) {