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....@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

--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel

Reply via email to