]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - Grow.c
Grow: fix removal of line in wrong case
[thirdparty/mdadm.git] / Grow.c
diff --git a/Grow.c b/Grow.c
index 2de821d0b9d432b8b6945ed417f91d1f6e188a0a..a2f4f1428787340fb4829398b5d25f17f133a68c 100644 (file)
--- a/Grow.c
+++ b/Grow.c
@@ -940,7 +940,9 @@ int reshape_open_backup_file(char *backup_file,
 
        if (!restart && strncmp(backup_file, MAP_DIR, strlen(MAP_DIR)) != 0) {
                char *bu = make_backup(sys_name);
-               symlink(backup_file, bu);
+               if (symlink(backup_file, bu))
+                       pr_err("Recording backup file in " MAP_DIR "failed: %s\n",
+                              strerror(errno));
                free(bu);
        }
 
@@ -1322,6 +1324,7 @@ char *analyse_change(char *devname, struct mdinfo *info, struct reshape *re)
 
                switch (re->level) {
                case 4:
+                       re->before.layout = 0;
                        re->after.layout = 0;
                        break;
                case 5:
@@ -1337,7 +1340,6 @@ char *analyse_change(char *devname, struct mdinfo *info, struct reshape *re)
 
                switch (re->level) {
                case 4:
-                       re->before.layout = 0;
                        re->after.layout = 0;
                        break;
                case 5:
@@ -3471,7 +3473,7 @@ int reshape_container(char *container, char *devname,
         */
        ping_monitor(container);
 
-       if (!forked && !check_env("MDADM_NO_SYSTEMCTL"))
+       if (!forked && !freeze_reshape && !check_env("MDADM_NO_SYSTEMCTL"))
                if (continue_via_systemd(container))
                        return 0;