From: Luca Berra Date: Sat, 27 Feb 2010 15:07:51 +0000 (+0100) Subject: fix mdmon takeover X-Git-Tag: mdadm-3.1.2~19 X-Git-Url: http://git.ipfire.org/?p=thirdparty%2Fmdadm.git;a=commitdiff_plain;h=cf556303573cd8cb9140c819b1ba1102ebc9cac7 fix mdmon takeover - when we waited for the old mdmon to exit, we didn't look for the socket in the right place - when we failed to find a pid file, we returned the wrong value (code expected <0, but got ==0). Signed-off-by: Luca Berra Signed-off-by: NeilBrown --- diff --git a/msg.c b/msg.c index cc07b965..d2d84458 100644 --- a/msg.c +++ b/msg.c @@ -147,7 +147,7 @@ int connect_monitor(char *devname) int pos; char *c; - pos = sprintf(path, "%s/", VAR_RUN); + pos = sprintf(path, "%s/", pid_dir); if (is_subarray(devname)) { devname++; c = strchr(devname, '/'); diff --git a/util.c b/util.c index 5d5711c8..66be82ab 100644 --- a/util.c +++ b/util.c @@ -1478,11 +1478,11 @@ int mdmon_pid(int devnum) fd = open(path, O_RDONLY | O_NOATIME, 0); if (fd < 0) - return 0; + return -1; n = read(fd, pid, 9); close(fd); if (n <= 0) - return 0; + return -1; return atoi(pid); }