You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.7 KiB
59 lines
1.7 KiB
2 months ago
|
From f98340f1b830d950978abba752b2b9b004528faf Mon Sep 17 00:00:00 2001
|
||
|
From: Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>
|
||
|
Date: Thu, 20 Jun 2024 15:22:50 +0200
|
||
|
Subject: [PATCH 108/157] Revert "mdadm: Fix socket connection failure when
|
||
|
mdmon runs in foreground mode."
|
||
|
|
||
|
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 | 20 +-------------------
|
||
|
1 file changed, 1 insertion(+), 19 deletions(-)
|
||
|
|
||
|
diff --git a/msg.c b/msg.c
|
||
|
index d17f679d..f0772b3f 100644
|
||
|
--- 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;
|
||
|
}
|
||
|
--
|
||
|
2.41.0
|
||
|
|