* [PATCH] Grow: stop previous reshape process first
@ 2017-09-07 11:01 Tomasz Majchrzak
2017-10-02 19:42 ` Jes Sorensen
0 siblings, 1 reply; 2+ messages in thread
From: Tomasz Majchrzak @ 2017-09-07 11:01 UTC (permalink / raw)
To: linux-raid; +Cc: jes.sorensen, Tomasz Majchrzak
If array is stopped during reshape and assembled again straight away,
reshape process in a background might still be running. systemd doesn't
start a new service if one already exists. If there is a race, previous
process might terminate and new one is not created. Reshape doesn't
continue after assemble.
Tell systemd to restart the service rather than just start it. It will
assure previous service is stopped first. If it's not running, stopping
has no effect and only new process is started.
Signed-off-by: Tomasz Majchrzak <tomasz.majchrzak@intel.com>
---
Grow.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Grow.c b/Grow.c
index 534ba80..267b06f 100644
--- a/Grow.c
+++ b/Grow.c
@@ -3003,9 +3003,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. */
--
1.8.3.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] Grow: stop previous reshape process first
2017-09-07 11:01 [PATCH] Grow: stop previous reshape process first Tomasz Majchrzak
@ 2017-10-02 19:42 ` Jes Sorensen
0 siblings, 0 replies; 2+ messages in thread
From: Jes Sorensen @ 2017-10-02 19:42 UTC (permalink / raw)
To: Tomasz Majchrzak, linux-raid
On 09/07/2017 07:01 AM, Tomasz Majchrzak wrote:
> If array is stopped during reshape and assembled again straight away,
> reshape process in a background might still be running. systemd doesn't
> start a new service if one already exists. If there is a race, previous
> process might terminate and new one is not created. Reshape doesn't
> continue after assemble.
>
> Tell systemd to restart the service rather than just start it. It will
> assure previous service is stopped first. If it's not running, stopping
> has no effect and only new process is started.
>
> Signed-off-by: Tomasz Majchrzak <tomasz.majchrzak@intel.com>
> ---
> Grow.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
Applied!
Thanks,
Jes
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2017-10-02 19:42 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-09-07 11:01 [PATCH] Grow: stop previous reshape process first Tomasz Majchrzak
2017-10-02 19:42 ` Jes Sorensen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).