Fix up analysis of reshape from RAID1 to RAID5.
Need to allow raid-disks to change at the same time. NeilBrown <neilb@suse.de>
This commit is contained in:
parent
e7a71c6b77
commit
446d2a5ad4
10
Grow.c
10
Grow.c
|
@ -928,14 +928,12 @@ char *analyse_change(struct mdinfo *info, struct reshape *re)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
if (info->array.raid_disks == 2 &&
|
if (info->array.raid_disks == 2 &&
|
||||||
info->array.raid_disks == 5) {
|
info->new_level == 5) {
|
||||||
/* simple in-place conversion */
|
|
||||||
re->level = 5;
|
re->level = 5;
|
||||||
re->parity = 1;
|
|
||||||
re->before.data_disks = 1;
|
re->before.data_disks = 1;
|
||||||
re->before.layout = ALGORITHM_LEFT_SYMMETRIC;
|
re->before.layout = ALGORITHM_LEFT_SYMMETRIC;
|
||||||
re->backup_blocks = 0;
|
info->array.chunk_size = 65536;
|
||||||
return NULL;
|
break;
|
||||||
}
|
}
|
||||||
/* Could do some multi-stage conversions, but leave that to
|
/* Could do some multi-stage conversions, but leave that to
|
||||||
* later.
|
* later.
|
||||||
|
@ -1224,7 +1222,7 @@ char *analyse_change(struct mdinfo *info, struct reshape *re)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
if (re->after.data_disks == 1 && re->before.data_disks == 1) {
|
if (re->after.data_disks == 1 && re->before.data_disks == 1) {
|
||||||
/* chunks can layout changes make no difference */
|
/* chunk and layout changes make no difference */
|
||||||
re->backup_blocks = 0;
|
re->backup_blocks = 0;
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue