diff options
author | Kinga Stefaniuk <kinga.stefaniuk@intel.com> | 2024-05-07 05:38:56 +0200 |
---|---|---|
committer | Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com> | 2024-05-14 11:08:06 +0200 |
commit | aa1cc5815d2b14a8b47add18cfaa8264e19c10ce (patch) | |
tree | 19b8e321caa9d3107ca951b26c735e06372fea8c /Grow.c | |
parent | util.c: change devnm to const in mdmon functions (diff) | |
download | mdadm-aa1cc5815d2b14a8b47add18cfaa8264e19c10ce.tar.xz mdadm-aa1cc5815d2b14a8b47add18cfaa8264e19c10ce.zip |
Wait for mdmon when it is stared via systemd
When mdmon is being started it may need few seconds to start.
For now, we didn't wait for it. Introduce wait_for_mdmon()
function, which waits up to 5 seconds for mdmon to start completely.
Signed-off-by: Kinga Stefaniuk <kinga.stefaniuk@intel.com>
Signed-off-by: Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>
Diffstat (limited to 'Grow.c')
-rw-r--r-- | Grow.c | 7 |
1 files changed, 4 insertions, 3 deletions
@@ -2134,7 +2134,7 @@ int Grow_reshape(char *devname, int fd, if (!mdmon_running(st->container_devnm)) start_mdmon(st->container_devnm); ping_monitor(container); - if (mdmon_running(st->container_devnm) == false) { + if (wait_for_mdmon(st->container_devnm) != MDADM_STATUS_SUCCESS) { pr_err("No mdmon found. Grow cannot continue.\n"); goto release; } @@ -3218,7 +3218,8 @@ static int reshape_array(char *container, int fd, char *devname, if (!mdmon_running(container)) start_mdmon(container); ping_monitor(container); - if (mdmon_running(container) && st->update_tail == NULL) + if (wait_for_mdmon(container) == MDADM_STATUS_SUCCESS && + !st->update_tail) st->update_tail = &st->updates; } } @@ -5173,7 +5174,7 @@ int Grow_continue_command(char *devname, int fd, struct context *c) start_mdmon(container); ping_monitor(container); - if (mdmon_running(container) == false) { + if (wait_for_mdmon(container) != MDADM_STATUS_SUCCESS) { pr_err("No mdmon found. Grow cannot continue.\n"); ret_val = 1; goto Grow_continue_command_exit; |