From: Martin Wilck <[email protected]>

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 <[email protected]>
---
 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


--
dm-devel mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/dm-devel

Reply via email to