From 9fe32043178f221526b6d59f3bbce58f777089da Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Fri, 18 Jul 2008 16:37:20 +1000 Subject: mdmon: fork and run as a daemon. start_mdmon now waits for mdmon to complete initialisation and, importantly, listen on the socket, before continuing. Signed-off-by: Neil Brown --- util.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'util.c') diff --git a/util.c b/util.c index fe46f3b0..3bf4cbe3 100644 --- a/util.c +++ b/util.c @@ -31,6 +31,7 @@ #include "md_p.h" #include #include +#include #include #include #include @@ -1078,6 +1079,8 @@ int start_mdmon(int devnum) { int i; int len; + pid_t pid; + int status; char pathbuf[1024]; char *paths[4] = { pathbuf, @@ -1117,7 +1120,10 @@ int start_mdmon(int devnum) case -1: fprintf(stderr, Name ": cannot run mdmon. " "Array remains readonly\n"); return -1; - default: ; /* parent - good */ + default: /* parent - good */ + pid = wait(&status); + if (pid < 0 || status != 0) + return -1; } return 0; } -- cgit v1.2.3