]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
FIX: Pass container name to reshape array for external meta data
authorAdam Kwolek <adam.kwolek@intel.com>
Mon, 28 Feb 2011 15:07:11 +0000 (16:07 +0100)
committerNeilBrown <neilb@suse.de>
Wed, 2 Mar 2011 00:36:46 +0000 (11:36 +1100)
When calling reshape_array() for external metadata 'container name'
parameter have to be passed.
Find and pass container name in external metadata case.

Signed-off-by: Adam Kwolek <adam.kwolek@intel.com>
Signed-off-by: NeilBrown <neilb@suse.de>
Grow.c

diff --git a/Grow.c b/Grow.c
index e4fa196f6605fe5d75dff047d82fa0691314049a..cb52cc5a7000d7775ed06436333330541f6ca502 100644 (file)
--- a/Grow.c
+++ b/Grow.c
@@ -3323,10 +3323,18 @@ int Grow_restart(struct supertype *st, struct mdinfo *info, int *fdlist, int cnt
 int Grow_continue(int mdfd, struct supertype *st, struct mdinfo *info,
                  char *backup_file)
 {
+       char buf[40];
+       char *container = NULL;
        int err = sysfs_set_str(info, NULL, "array_state", "readonly");
        if (err)
                return err;
-       return reshape_array(NULL, mdfd, "array", st, info, 1, backup_file, 0, 0, 1);
+
+       if (st->ss->external) {
+               fmt_devname(buf, st->container_dev);
+               container = buf;
+       }
+       return reshape_array(container, mdfd, "array", st, info, 1,
+                            backup_file, 0, 0, 1);
 }