]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
Grow: fix crash when restarting an array.
authorNeilBrown <neilb@suse.de>
Thu, 27 Jun 2013 03:10:44 +0000 (13:10 +1000)
committerNeilBrown <neilb@suse.de>
Thu, 27 Jun 2013 03:10:44 +0000 (13:10 +1000)
After the 'started' label it is assumed that 'sra' is set, so better
set it when jumping there.

Signed-off-by: NeilBrown <neilb@suse.de>
Grow.c

diff --git a/Grow.c b/Grow.c
index 8e4594d61a814c62c597da7d59c78127af2bbff9..1d0c7ce2b2d1db9a480f12ab5af36622a13620b8 100644 (file)
--- a/Grow.c
+++ b/Grow.c
@@ -2835,6 +2835,16 @@ static int reshape_array(char *container, int fd, char *devname,
                        return 0;
                if (restart & RESHAPE_NO_BACKUP)
                        return 0;
+
+               /* Need 'sra' down at 'started:' */
+               sra = sysfs_read(fd, NULL,
+                                GET_COMPONENT|GET_DEVS|GET_OFFSET|GET_STATE|GET_CHUNK|
+                                GET_CACHE);
+               if (!sra) {
+                       pr_err("%s: Cannot get array details from sysfs\n",
+                              devname);
+                       goto release;
+               }
                goto started;
        }
        /* The container is frozen but the array may not be.