When Grow_continue() calls reshape_array(), reshape is configured and it is started with array together. We cannot start it again. Signed-off-by: Adam Kwolek <adam.kwolek@xxxxxxxxx> --- Grow.c | 21 +++++++++++++-------- 1 files changed, 13 insertions(+), 8 deletions(-) diff --git a/Grow.c b/Grow.c index a5041de..47b8809 100644 --- a/Grow.c +++ b/Grow.c @@ -1965,7 +1965,7 @@ started: * metadata, and for kernels before 2.6.38 we can * fail if we try. */ - } else { + } else if (!restart) { /* set them all just in case some old 'new_*' value * persists from some earlier problem. * We even set them when restarting in the middle. They will @@ -1995,13 +1995,18 @@ started: } } - err = start_reshape(sra, (info->reshape_active && !st->ss->external)); - if (err) { - fprintf(stderr, Name ": Cannot start reshape for %s\n", - devname); - goto release; - } - if (restart) + /* if reshape is already started, + * there is no need to do this again + */ + if (!restart) { + err = start_reshape(sra, + (info->reshape_active && !st->ss->external)); + if (err) { + fprintf(stderr, Name ": Cannot start reshape for %s\n", + devname); + goto release; + } + } else sysfs_set_str(sra, NULL, "array_state", "active"); /* Now we just need to kick off the reshape and watch, while -- To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html