[dm-devel] [PATCH 29/35] libmultipath: snprint_devices(): print hidden/foreign status
mwilck at suse.com
mwilck at suse.com
Thu Jul 9 10:16:14 UTC 2020
From: Martin Wilck <mwilck at suse.com>
The "hidden" and "claimed by foreign" properties take precedence
over blacklisting/whitelisting in pathinfo(). We should take
this into account when printing the device list.
Signed-off-by: Martin Wilck <mwilck at suse.com>
---
libmultipath/print.c | 25 ++++++++++++++++++-------
1 file changed, 18 insertions(+), 7 deletions(-)
diff --git a/libmultipath/print.c b/libmultipath/print.c
index fb94f86..ea95d69 100644
--- a/libmultipath/print.c
+++ b/libmultipath/print.c
@@ -30,6 +30,7 @@
#include "debug.h"
#include "discovery.h"
#include "util.h"
+#include "foreign.h"
#define MAX(x,y) (((x) > (y)) ? (x) : (y))
#define MIN(x,y) (((x) > (y)) ? (y) : (x))
@@ -2061,13 +2062,23 @@ int snprint_devices(struct config *conf, char *buff, size_t len,
pp = find_path_by_dev(vecs->pathvec, devname);
if (!pp) {
- r = filter_devnode(conf->blist_devnode,
- conf->elist_devnode,
- devname);
- if (r > 0)
- status = "devnode blacklisted, unmonitored";
- else
- status = "devnode whitelisted, unmonitored";
+ const char *hidden;
+
+ hidden = udev_device_get_sysattr_value(u_dev,
+ "hidden");
+ if (hidden && !strcmp(hidden, "1"))
+ status = "hidden, unmonitored";
+ else if (is_claimed_by_foreign(u_dev))
+ status = "foreign, monitored";
+ else {
+ r = filter_devnode(conf->blist_devnode,
+ conf->elist_devnode,
+ devname);
+ if (r > 0)
+ status = "devnode blacklisted, unmonitored";
+ else
+ status = "devnode whitelisted, unmonitored";
+ }
} else
status = " devnode whitelisted, monitored";
--
2.26.2
More information about the dm-devel
mailing list