imsm: FIX: Disable automatic metadata rollback for broken reshape
mdmon cannot rollback metadata changes automatically. It can break reshape process in the way that in case of reshape break user will not be able to deal with broken reshape due to lack of information about reshape geometry. mdadm (process that invokes reshape) doesn't make any rollback to allow for user action. mdmon should not do this either unless it knows for sure it is save. such knowledge is not available for automatic rollback. Signed-off-by: Adam Kwolek <adam.kwolek@intel.com> Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
parent
68eb8bc6ca
commit
b66e591b14
|
@ -5856,14 +5856,18 @@ static int imsm_set_array_state(struct active_array *a, int consistent)
|
|||
} else {
|
||||
if (a->last_checkpoint == 0 && a->prev_action == reshape) {
|
||||
/* for some reason we aborted the reshape.
|
||||
* Better clean up
|
||||
*
|
||||
* disable automatic metadata rollback
|
||||
* user action is required to recover process
|
||||
*/
|
||||
if (0) {
|
||||
struct imsm_map *map2 = get_imsm_map(dev, 1);
|
||||
dev->vol.migr_state = 0;
|
||||
dev->vol.migr_type = 0;
|
||||
dev->vol.curr_migr_unit = 0;
|
||||
memcpy(map, map2, sizeof_imsm_map(map2));
|
||||
super->updates_pending++;
|
||||
}
|
||||
}
|
||||
if (a->last_checkpoint >= a->info.component_size) {
|
||||
unsigned long long array_blocks;
|
||||
|
|
Loading…
Reference in New Issue