dcavalca / rpms / mdadm

Forked from rpms/mdadm 3 years ago
Clone

Blame SOURCES/0098-Create.c-close-mdfd-and-generate-uevent.patch

790dca
From ce559078a5650afb9f635204b31a89a1fa0061e3 Mon Sep 17 00:00:00 2001
790dca
From: Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>
790dca
Date: Tue, 24 Nov 2020 13:39:49 +0100
790dca
Subject: [PATCH 098/108] Create.c: close mdfd and generate uevent
790dca
790dca
During mdfd closing change event is not generated because open() is
790dca
called before start watching mddevice by udev.
790dca
Device is ready at this stage. Unblock device, close fd and
790dca
generate event to give a chance next layers to work.
790dca
790dca
Signed-off-by: Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>
790dca
---
790dca
 Create.c | 7 ++-----
790dca
 1 file changed, 2 insertions(+), 5 deletions(-)
790dca
790dca
diff --git a/Create.c b/Create.c
790dca
index 0efa19c..51f8826 100644
790dca
--- a/Create.c
790dca
+++ b/Create.c
790dca
@@ -1083,12 +1083,9 @@ int Create(struct supertype *st, char *mddev,
790dca
 	} else {
790dca
 		pr_err("not starting array - not enough devices.\n");
790dca
 	}
790dca
-	close(mdfd);
790dca
-	/* Give udev a moment to process the Change event caused
790dca
-	 * by the close.
790dca
-	 */
790dca
-	usleep(100*1000);
790dca
 	udev_unblock();
790dca
+	close(mdfd);
790dca
+	sysfs_uevent(&info, "change");
790dca
 	return 0;
790dca
 
790dca
  abort:
790dca
-- 
790dca
2.7.5
790dca