]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
Revert "mdmon(): Error out if failing to connect to victim monitor"
authorNeilBrown <neilb@suse.de>
Mon, 7 Nov 2011 00:37:12 +0000 (11:37 +1100)
committerNeilBrown <neilb@suse.de>
Mon, 7 Nov 2011 00:37:12 +0000 (11:37 +1100)
This reverts commit 819c158866f466075a1c719f0dc496deb2fb3814.

Adam Kwolek reports that with this patch, mdmon sometimes doesn't start:

    When array is not clean dismounted directory /dev/.mdadm is not cleaned up.
    On array re-assembly read pid is not valid and it is not possible
    to connect to monitor. This causes mdmon to exit and array remains
    not monitored.
    Problem is introduced by fix:
       mdmon(): Error out if failing to connect to victim monitor
       819c158866f466075a1c719f0dc496deb2fb3814

    This is critical for container reshape when mdmon is should finish reshape.
    when reshape is not finished, array is reshaped again by mdadm.

As victim_sock is subsequently tested, we don't really need to test-and-fail here.

Reported-by: Adam Kwolek <adam.kwolek@intel.com>
Signed-off-by: NeilBrown <neilb@suse.de>
mdmon.c

diff --git a/mdmon.c b/mdmon.c
index bdcda0eded88ae4b93d97d56c0a82c71244bef04..ee68e3c3b5709c0c3b34cfd8e74fe5a18470a64c 100644 (file)
--- a/mdmon.c
+++ b/mdmon.c
@@ -457,14 +457,8 @@ static int mdmon(char *devname, int devnum, int must_fork, int takeover)
        sigaction(SIGPIPE, &act, NULL);
 
        victim = mdmon_pid(container->devnum);
-       if (victim >= 0) {
+       if (victim >= 0)
                victim_sock = connect_monitor(container->devname);
-               if (victim_sock < 0) {
-                       fprintf(stderr, "mdmon: %s unable to connect monitor\n",
-                               container->devname);
-                       exit(3);
-               }
-       }
 
        ignore = chdir("/");
        if (!takeover && victim > 0 && victim_sock >= 0) {