X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=Grow.c;h=bab1eec1f705d30ccff4ead0d4f1e0e83d8384ef;hb=44b6b87610281a4add36a1addd7630095dc8a545;hp=534ba801999838b0b3b61c452f8f61807deb1379;hpb=8e5b52cdda95965787e2a289c855a4ab7099f00d;p=thirdparty%2Fmdadm.git diff --git a/Grow.c b/Grow.c index 534ba801..bab1eec1 100644 --- a/Grow.c +++ b/Grow.c @@ -1816,6 +1816,12 @@ int Grow_reshape(char *devname, int fd, return 1; } + if (array.level > 1 && + (array.chunk_size / 1024) > (int)s->size) { + pr_err("component size must be larger than chunk size.\n"); + return 1; + } + st = super_by_fd(fd, &subarray); if (!st) { pr_err("Unable to determine metadata format for %s\n", devname); @@ -3003,9 +3009,9 @@ static int continue_via_systemd(char *devnm) snprintf(pathbuf, sizeof(pathbuf), "mdadm-grow-continue@%s.service", devnm); status = execl("/usr/bin/systemctl", "systemctl", - "start", + "restart", pathbuf, NULL); - status = execl("/bin/systemctl", "systemctl", "start", + status = execl("/bin/systemctl", "systemctl", "restart", pathbuf, NULL); exit(1); case -1: /* Just do it ourselves. */