summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Kwolek <adam.kwolek@intel.com>2011-06-14 12:42:16 +1000
committerNeilBrown <neilb@suse.de>2011-06-14 12:42:16 +1000
commitb66e591b145c84d59270410a34abcd5136caa24f (patch)
treef2bbca74c788e1abc20efacc6acd0d7bceda9c6e
parent68eb8bc6cac325ed635dccd69b638bf1b46449ef (diff)
downloadmdadm-b66e591b145c84d59270410a34abcd5136caa24f.tar.gz
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>
-rw-r--r--super-intel.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/super-intel.c b/super-intel.c
index 4f674bf..d8464b7 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;