From: Adam Kwolek Date: Tue, 6 Dec 2011 00:44:07 +0000 (+1100) Subject: imsm: FIX: Just created redundant array is not in uninitialized state X-Git-Tag: mdadm-3.2.3~42 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bf4442aba401633edff897c1fb142608962fbe57;p=thirdparty%2Fmdadm.git imsm: FIX: Just created redundant array is not in uninitialized state 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 Signed-off-by: NeilBrown --- diff --git a/super-intel.c b/super-intel.c index b6be1eb4..1960ebfc 100644 --- a/super-intel.c +++ b/super-intel.c @@ -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) {