When the daemon is started prior to udev the paths are not present
(yet). However, the maps themselves will be read from device-mapper.
This causes existing maps to be dropped in coalesce_maps(), only
to be reinstated later when all paths are discovered.
To avoid this we should be checking for a valid hardware entry
per multipath map; if there is none we're in startup and shouldn't
drop any maps.

Signed-off-by: Hannes Reinecke <h...@suse.com>
---
 multipathd/main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/multipathd/main.c b/multipathd/main.c
index 1141fb6..33a3503 100644
--- a/multipathd/main.c
+++ b/multipathd/main.c
@@ -155,7 +155,7 @@ coalesce_maps(struct vectors *vecs, vector nmpv)
 
        vector_foreach_slot (ompv, ompp, i) {
                condlog(3, "%s: coalesce map", ompp->alias);
-               if (!find_mp_by_wwid(nmpv, ompp->wwid)) {
+               if (ompp->hwe && !find_mp_by_wwid(nmpv, ompp->wwid)) {
                        /*
                         * remove all current maps not allowed by the
                         * current configuration
-- 
2.6.6

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

Reply via email to