multipath: implement "check usable paths" (-C/-U)
authorMartin Wilck <mwilck@suse.com>
Sat, 2 Sep 2017 22:38:44 +0000 (00:38 +0200)
committerChristophe Varoqui <christophe.varoqui@opensvc.com>
Wed, 20 Sep 2017 15:56:00 +0000 (17:56 +0200)
commite13f68689bff28819a22864f574dc701c0fdd644
treeb2cd5877f9835969df0d9e79363179f321ba8e33
parent8c1b081966ad6eb372fe939c5ab048467dc68ce2
multipath: implement "check usable paths" (-C/-U)

When we process udev rules, it's crucial to know whether I/O on a given
device will succeed. Unfortunately DM_NR_VALID_PATHS is not reliable,
because the kernel path events aren't necessarily received in order, and
even if they are, the number of usable paths may have changed during
udev processing, in particular when there's a lot of load on udev
because many paths are failing or reinstating at the same time.
The latter problem can't be completely avoided, but the closer the
test before the actual "blkid" call, the better.

This patch adds the -C/-U options to multipath to check if a given
map has usable paths. Obviously this command must avoid doing any I/O
on the multipath map itself, thus no checkers are called; only status
from sysfs and dm is collected.

Signed-off-by: Martin Wilck <mwilck@suse.com>
libmultipath/config.h
multipath/main.c
multipath/multipath.8