]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
Grow: goto release rather than just return
authorNeilBrown <neilb@suse.de>
Fri, 6 Nov 2009 04:22:14 +0000 (15:22 +1100)
committerNeilBrown <neilb@suse.de>
Fri, 6 Nov 2009 04:22:14 +0000 (15:22 +1100)
otherwise we exit with the array frozen.

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

diff --git a/Grow.c b/Grow.c
index 4423b787d6147257c14bfa91c91512fbdc0109a8..75af6f3a8302c6399b4c39249858721e94827134 100644 (file)
--- a/Grow.c
+++ b/Grow.c
@@ -644,8 +644,10 @@ int Grow_reshape(char *devname, int fd, int quiet, char *backup_file,
                                layout_str = "parity-last";
                } else {
                        c = map_num(pers, level);
-                       if (c == NULL)
-                               return 1;/* not possible */
+                       if (c == NULL) {
+                               rv = 1;/* not possible */
+                               goto release;
+                       }
                        err = sysfs_set_str(sra, NULL, "level", c);
                        if (err) {
                                fprintf(stderr, Name ": %s: could not set level to %s\n",
@@ -849,7 +851,8 @@ int Grow_reshape(char *devname, int fd, int quiet, char *backup_file,
                                if (nlayout == UnSet) {
                                        fprintf(stderr, Name ": layout %s not understood for raid5.\n",
                                                layout_str);
-                                       return 1;
+                                       rv = 1;
+                                       goto release;
                                }
                                break;
 
@@ -858,7 +861,8 @@ int Grow_reshape(char *devname, int fd, int quiet, char *backup_file,
                                if (nlayout == UnSet) {
                                        fprintf(stderr, Name ": layout %s not understood for raid6.\n",
                                                layout_str);
-                                       return 1;
+                                       rv = 1;
+                                       goto release;
                                }
                                break;
                        }