From: Martin Wilck Date: Fri, 14 Sep 2018 12:51:01 +0000 (+0200) Subject: libmultipath: pathinfo: skip hidden devices X-Git-Tag: 0.7.8~37 X-Git-Url: https://git.opensvc.com/gitweb.cgi?p=multipath-tools%2F.git;a=commitdiff_plain;h=e6f302ed37f7d0bf5832f19d763b3e2945db6a99 libmultipath: pathinfo: skip hidden devices Hidden block devices (in practice: members of nvme native multipath devices) can't be used by multipath anyway. Current multipath code (with default blacklisting) skips them, too, but emits a misleading "blacklisted: udev property missing" message. Signed-off-by: Martin Wilck --- diff --git a/libmultipath/discovery.c b/libmultipath/discovery.c index 0b1855dd..11da64ba 100644 --- a/libmultipath/discovery.c +++ b/libmultipath/discovery.c @@ -1858,9 +1858,18 @@ int pathinfo(struct path *pp, struct config *conf, int mask) * limited by DI_BLACKLIST and occurs before this debug * message with the mask value. */ - if (pp->udev && (is_claimed_by_foreign(pp->udev) || - filter_property(conf, pp->udev) > 0)) - return PATHINFO_SKIPPED; + if (pp->udev) { + const char *hidden = + udev_device_get_sysattr_value(pp->udev, "hidden"); + + if (hidden && !strcmp(hidden, "1")) { + condlog(3, "%s: hidden", pp->dev); + return PATHINFO_SKIPPED; + } + if (is_claimed_by_foreign(pp->udev) || + filter_property(conf, pp->udev) > 0) + return PATHINFO_SKIPPED; + } if (filter_devnode(conf->blist_devnode, conf->elist_devnode,