From: Adam Kwolek Date: Tue, 14 Jun 2011 02:42:16 +0000 (+1000) Subject: imsm: FIX: Disable automatic metadata rollback for broken reshape X-Git-Tag: mdadm-3.2.2~20 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b66e591b145c84d59270410a34abcd5136caa24f;p=thirdparty%2Fmdadm.git 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 Signed-off-by: NeilBrown --- diff --git a/super-intel.c b/super-intel.c index 4f674bf7..d8464b76 100644 --- a/super-intel.c +++ b/super-intel.c @@ -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;