4ac0f8fa3e
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
46 lines
1.6 KiB
Diff
46 lines
1.6 KiB
Diff
From e1dd332a09c66ef0df68229cc633b8f2521e5db4 Mon Sep 17 00:00:00 2001
|
|
From: Adam Kwolek <adam.kwolek@intel.com>
|
|
Date: Thu, 9 Feb 2012 12:37:40 +1100
|
|
Subject: [PATCH 11/12] FIX: restart reshape when reshape process is stopped
|
|
just between 2 reshapes
|
|
|
|
When reshape is restarted from '0', very begin of array
|
|
it is possible that for external metadata reshape and array
|
|
configuration doesn't happen.
|
|
Check if md has the same opinion, and reshape is restarted
|
|
from 0. If so, this is regular reshape start after reshape
|
|
switch in metadata to next array only.
|
|
|
|
Signed-off-by: Adam Kwolek <adam.kwolek@intel.com>
|
|
Signed-off-by: NeilBrown <neilb@suse.de>
|
|
---
|
|
Grow.c | 12 ++++++++++++
|
|
1 files changed, 12 insertions(+), 0 deletions(-)
|
|
|
|
diff --git a/Grow.c b/Grow.c
|
|
index 6b1380a..61adefa 100644
|
|
--- a/Grow.c
|
|
+++ b/Grow.c
|
|
@@ -1980,6 +1980,18 @@ static int reshape_array(char *container, int fd, char *devname,
|
|
goto release;
|
|
}
|
|
|
|
+ if (st->ss->external && restart && (info->reshape_progress == 0)) {
|
|
+ /* When reshape is restarted from '0', very begin of array
|
|
+ * it is possible that for external metadata reshape and array
|
|
+ * configuration doesn't happen.
|
|
+ * Check if md has the same opinion, and reshape is restarted
|
|
+ * from 0. If so, this is regular reshape start after reshape
|
|
+ * switch in metadata to next array only.
|
|
+ */
|
|
+ if ((verify_reshape_position(info, reshape.level) >= 0) &&
|
|
+ (info->reshape_progress == 0))
|
|
+ restart = 0;
|
|
+ }
|
|
if (restart) {
|
|
/* reshape already started. just skip to monitoring the reshape */
|
|
if (reshape.backup_blocks == 0)
|
|
--
|
|
1.7.4.4
|
|
|