[dm-devel] [PATCH] multipathd: deferred device adding

Gioh Kim gi-oh.kim at profitbricks.com
Thu Nov 10 15:05:21 UTC 2016


Current multipathd always receives events from udev
and add devices to topology immediately. For example,
if sdb is added, multipathd receives the event from sdb
and add sdb into the topology.
But some platform needs to defer adding new device
until user adds device manually, for instance, with "multipathd add sdb".

I tested this patch to disable ueventloop.
There was no problem on my platform.

Is there a configuration for multipath.conf or udev rule
for deferred device adding?
Or what about adding new configuration for that?

Signed-off-by: Gioh Kim <gi-oh.kim at profitbricks.com>
---
 multipathd/main.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/multipathd/main.c b/multipathd/main.c
index d6f081f..da38d02 100644
--- a/multipathd/main.c
+++ b/multipathd/main.c
@@ -2372,10 +2372,12 @@ child (void * param)
 	/*
 	 * Start uevent listener early to catch events
 	 */
+	/*
 	if ((rc = pthread_create(&uevent_thr, &uevent_attr, ueventloop, udev))) {
 		condlog(0, "failed to create uevent thread: %d", rc);
 		goto failed;
 	}
+	*/
 	pthread_attr_destroy(&uevent_attr);
 	if ((rc = pthread_create(&uxlsnr_thr, &misc_attr, uxlsnrloop, vecs))) {
 		condlog(0, "failed to create cli listener: %d", rc);
@@ -2433,12 +2435,12 @@ child (void * param)
 	unlock(&vecs->lock);
 
 	pthread_cancel(check_thr);
-	pthread_cancel(uevent_thr);
+	/* pthread_cancel(uevent_thr); */
 	pthread_cancel(uxlsnr_thr);
 	pthread_cancel(uevq_thr);
 
 	pthread_join(check_thr, NULL);
-	pthread_join(uevent_thr, NULL);
+	/* pthread_join(uevent_thr, NULL); */
 	pthread_join(uxlsnr_thr, NULL);
 	pthread_join(uevq_thr, NULL);
 
-- 
2.5.0




More information about the dm-devel mailing list