Fix issues with user_friendly_names initramfs bindings
authorBenjamin Marzinski <bmarzins@redhat.com>
Thu, 7 Apr 2016 23:19:57 +0000 (18:19 -0500)
committerChristophe Varoqui <christophe.varoqui@opensvc.com>
Mon, 18 Apr 2016 08:50:59 +0000 (10:50 +0200)
commit2008ff314bddc0900c4d310ab116c817eb0f2252
tree63aad4a0d99afe68d0d3663c2b092efc281a20b9
parent688aa22bfa6efb1db0bd1fa6c4d5b6789eb1a911
Fix issues with user_friendly_names initramfs bindings

Multipath has an issue with user_friendly_names set in the initramfs.
If the bindings are in the initramfs bindings file, it will create them,
and it may use bindings that are different than the ones in the regular
file system.  Once multipathd starts up in the regular file system, it
will try to register the existing bindings, but that may (and in many
cases, is likely to) fail. If it can't reanme it, will pick a new
binding. Since when multipathd starts discovering the existing devices,
it obviously doesn't know all of the existing devices yet, it may very
well pick a binding that's already in use by a device that it hasn't
discovered yet. In this case multipath will be unable to rename the
device to the new binding. Unfortunately, if it fails the rename, it
never resets the alias of the device stored in the mpvec to current
alias of the actual dm device. So multipath will have devices in the
mpvec where the alias and the wwid don't match the actual dm devices
that exist.  This can cause all sorts of problems.

This patch does two things to deal with this.  First, it makes sure that
if the rename fails, the device will reset its alias to the one that it
currently has. Second, it fixes the -B option to actually work
correctly, so that it can be started that way in the initramfs.

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