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 <adam.kwolek@intel.com>
Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
Adam Kwolek 2011-12-06 11:44:07 +11:00 committed by NeilBrown
parent 8aedc4eaf6
commit bf4442aba4
1 changed files with 5 additions and 1 deletions

View 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) {