multipathd: Don't use fallback code after getting wwid
authorBenjamin Marzinski <bmarzins@redhat.com>
Sat, 30 Mar 2019 06:06:05 +0000 (01:06 -0500)
committerChristophe Varoqui <christophe.varoqui@opensvc.com>
Thu, 18 Apr 2019 11:03:54 +0000 (13:03 +0200)
commitffaf9477d115d342c81e4d051122f050d40976f2
treea3d5473c6c29b06ea5987f87378ed5cc837fb4b3
parent5607626e303ee5e3c83a5dfc26014144379fabd1
multipathd: Don't use fallback code after getting wwid

The fallback code is necessary to set up mutipath devices, if multipath
temporarily can't get the information from udev.  However, once the
devices are set up, udev is the definitive source of this information.

The wwid gotten from the fallback code and the udev code should always
be the same, in which case it doesn't matter where we get the wwid
from. But if they are different, it's important to try to do the
right thing.

Working under the assumption that udev will either never give us this
information, or that it usually will. multipath should assume that if
there are multiple paths to a device, either they will all never get
a wwid from udev, or some of them will likely already have gotten the
correct wwid from udev.  In this case, we should fix this as soon as
possible.

This does mean that devices where udev will never give out the uuid
will not notice if the wwid changes, but that's a small price to pay
for doing the right thing most of the time.

Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
libmultipath/discovery.c
libmultipath/discovery.h
multipathd/main.c