From 0000000000000000000000000000000000000000 Mon Sep 17
00:00:00 2001 From:Benjamin Marzinski <bmarzins@redhat.com> Date: Wed, 2 Jul
2014 12:49:53 -0500 Subject: [PATCH] RH: Remove the property blacklist
exception builtin

Multipath set the default property blacklist exceptions to
(ID_SCSI_VPD|ID_WWN).  This has the effect of blacklisting some internal
devices.  These devices may never have multiple paths, but it is nice
to be able to set multipath up on them all the same.  This patch simply
removes the default, and makes it so that if no property
blacklist_exception is given, then devices aren't failed for not matching
it.

Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>

Upsteam-Status: Pending

Update patch to 0.8.2
Signed-off-by: Changqing Li <changqing.li@windriver.com>
[OP: Rebase to 0.9.3]
Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
---
 libmultipath/blacklist.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/libmultipath/blacklist.c b/libmultipath/blacklist.c
index 8d15d2ea..820b0d68 100644
--- a/libmultipath/blacklist.c
+++ b/libmultipath/blacklist.c
@@ -198,9 +198,6 @@ setup_default_blist (struct config * conf)
 	struct hwentry *hwe;
 	int i;
 
-	if (store_ble(conf->blist_devnode, "!^(sd[a-z]|dasd[a-z]|nvme[0-9])", ORIGIN_DEFAULT))
-		return 1;
-
 	if (store_ble(conf->elist_property, "(SCSI_IDENT_|ID_WWN)", ORIGIN_DEFAULT))
 		return 1;
 
@@ -435,8 +432,11 @@ filter_property(const struct config *conf, struct udev_device *udev,
 			r = MATCH_NOTHING;
 	}
 
-	log_filter(devname, NULL, NULL, NULL, env, NULL, r, lvl);
-	return r;
+       if (VECTOR_SIZE(conf->elist_property)) {
+               log_filter(devname, NULL, NULL, NULL, env, NULL, r, lvl);
+               return r;
+       }
+       return 0;
 }
 
 static void free_ble(struct blentry *ble)
-- 
2.38.1

