summaryrefslogtreecommitdiff
path: root/Grow.c
diff options
context:
space:
mode:
authorAdam Kwolek <adam.kwolek@intel.com>2011-02-09 14:07:33 +1100
committerNeilBrown <neilb@suse.de>2011-02-09 14:07:33 +1100
commit3cd4e7c4dd1f58eb4d3bc4069dec34a1422ead70 (patch)
treeea12a1755a22556dd7c49963ae8a3a5d96382148 /Grow.c
parent9e3254422dbce93aad7c24bfc81e15e9fcab8237 (diff)
FIX: md runs recovery instead reshape for growing single disk raid0 array
Problem occurs when we want to expand single disk raid0 array. This is done via degraded 2 disks raid4 array. When new spare disk for reshape is added to array, md immediately initiates recovery before mdadm can configure and start reshape. This is due fact that 2 disk raid4/5 array is special md case. Mdmon does nothing here because container is blocked. This is caused because after takeover array is not in frozen state in md. Put array in to frozen state after takeover to allow mdadm to finish configuration before reshape is executed in md. Signed-off-by: Adam Kwolek <adam.kwolek@intel.com> Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'Grow.c')
-rw-r--r--Grow.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/Grow.c b/Grow.c
index f245e03a..e3d3cb8e 100644
--- a/Grow.c
+++ b/Grow.c
@@ -1677,6 +1677,7 @@ static int reshape_array(char *container, int fd, char *devname,
fprintf(stderr, Name ": level of %s changed to %s\n",
devname, c);
orig_level = info->array.level;
+ sysfs_freeze_array(info);
if (reshape.level > 0 && st->ss->external) {
/* make sure mdmon is aware of the new level */