]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - Grow.c
Grow: accept --assume-clean with --grow --size
[thirdparty/mdadm.git] / Grow.c
diff --git a/Grow.c b/Grow.c
index 1e1e9f8c3161553577a070b13aa48c7990f2ea81..62622bd28b5afb25bc1bcae5c43bbf6a26155bc3 100644 (file)
--- a/Grow.c
+++ b/Grow.c
@@ -1293,7 +1293,7 @@ int Grow_reshape(char *devname, int fd, int quiet, char *backup_file,
                 long long size,
                 int level, char *layout_str, int chunksize, int raid_disks,
                 struct mddev_dev *devlist,
-                int force)
+                int assume_clean, int force)
 {
        /* Make some changes in the shape of an array.
         * The kernel must support the change.
@@ -1491,6 +1491,14 @@ int Grow_reshape(char *devname, int fd, int quiet, char *backup_file,
                        rv = 1;
                        goto release;
                }
+               if (assume_clean) {
+                       /* This will fail on kernels newer than 2.6.40 unless
+                        * a backport has been arranged.
+                        */
+                       if (sra == NULL ||
+                           sysfs_set_str(sra, NULL, "resync_start", "none") < 0)
+                               fprintf(stderr, Name ": --assume-clean not support with --grow on this kernel\n");
+               }
                ioctl(fd, GET_ARRAY_INFO, &array);
                size = get_component_size(fd)/2;
                if (size == 0)