]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
Revert "mdadm: Fix socket connection failure when mdmon runs in foreground mode."
authorMariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>
Thu, 20 Jun 2024 13:22:50 +0000 (15:22 +0200)
committerMariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>
Fri, 21 Jun 2024 07:49:47 +0000 (09:49 +0200)
This reverts commit 66a54b266f6c579e5f37b6253820903a55c3346c.

connect_monitor() is called from ping_monitor() but this function is often
used as advice, without verification that mdmon is really working. This
produces hangs in many scenarios.

Signed-off-by: Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>
msg.c

diff --git a/msg.c b/msg.c
index d17f679d608dc52bb9a9d04b8e8fbda240906886..f0772b3f90bfd3943d871210a45abd46084f6542 100644 (file)
--- a/msg.c
+++ b/msg.c
@@ -151,7 +151,6 @@ int connect_monitor(char *devname)
        struct sockaddr_un addr;
        int pos;
        char *c;
-       int rv, retry_count = 0;
 
        pos = sprintf(path, "%s/", MDMON_DIR);
        if (is_subarray(devname)) {
@@ -171,24 +170,7 @@ int connect_monitor(char *devname)
 
        addr.sun_family = PF_LOCAL;
        strcpy(addr.sun_path, path);
-
-       /* In foreground mode, when mdadm is trying to connect to control
-        * socket it is possible that the mdmon has not created it yet.
-        * Give some time to mdmon to create socket.
-        */
-       for (retry_count = 0; retry_count < 10; retry_count++) {
-               rv = connect(sfd, (struct sockaddr*)&addr, sizeof(addr));
-
-               if (rv < 0) {
-                       sleep_for(0, MSEC_TO_NSEC(200), true);
-                       continue;
-               }
-               break;
-       }
-
-       if (rv < 0) {
-               pr_err("Failed to connect to control socket. (%s!!)\n",
-                               strerror(errno));
+       if (connect(sfd, (struct sockaddr *)&addr, sizeof(addr)) < 0) {
                close(sfd);
                return -1;
        }