From 8aae4219a2668acb88ad2777dacf69de941e7e07 Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Thu, 2 Oct 2008 22:26:00 -0700 Subject: [PATCH] mdmon: suicide prevention mdmon cannot remove the pidfile at shutdown becuase it needs to stay running across the "mount -o remount,ro /" event. When it relaunches after a reboot there is a good chance that the pid will match what was there previously. The result is that the "take over for unresponsive mdmon" logic results in self termination. Signed-off-by: Dan Williams --- mdmon.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mdmon.c b/mdmon.c index d6b99a2..32805a8 100644 --- a/mdmon.c +++ b/mdmon.c @@ -139,6 +139,10 @@ static void try_kill_monitor(char *devname) close(fd); pid = strtoul(buf, NULL, 10); + /* first rule of survival... don't off yourself */ + if (pid == getpid()) + return; + /* kill this process if it is mdmon */ sprintf(buf, "/proc/%lu/cmdline", (unsigned long) pid); fd = open(buf, O_RDONLY);