multipathd: handle repeated udev retrigger failure
authorMartin Wilck <mwilck@suse.com>
Tue, 23 Oct 2018 13:43:46 +0000 (15:43 +0200)
committerChristophe Varoqui <christophe.varoqui@opensvc.com>
Wed, 14 Nov 2018 07:20:40 +0000 (08:20 +0100)
commite88af791fce5de9d60a9ff8a9255ef8b09294551
tree844f202ea664b5e2b9bd10acb6c2f902c1c2dd33
parente6375a065a0691818614eaaa1210186a959f7af9
multipathd: handle repeated udev retrigger failure

If a path was still not properly initialized after exhausting the
retrigger tries, it used to remain in INIT_MISSING_UDEV state forever.
get_uid() might fall back to non-udev-based methods to determine
the WWID, but it would never be called for a path in this state any more.

This patch changes this behavior by resetting the path back to FAILED
state if udev can't provide the WWID even after retriggering. Now, if
the path ever happens to be in PATH_UP or PATH_GHOST state again,
pathinfo(DI_ALL) will be called from check_path(), and there's at least
some chance to obtain a WWID for it.

Signed-off-by: Martin Wilck <mwilck@suse.com>
multipathd/main.c