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>
---
 libmultipath/blacklist.c   | 15 ++++++---------
 multipath/multipath.conf.5 | 14 ++++++++------
 2 files changed, 14 insertions(+), 15 deletions(-)

diff --git a/libmultipath/blacklist.c b/libmultipath/blacklist.c
index ee396e2..19d4697 100644
--- a/libmultipath/blacklist.c
+++ b/libmultipath/blacklist.c
@@ -181,12 +181,6 @@ setup_default_blist (struct config * conf)
 	if (store_ble(conf->blist_devnode, str, ORIGIN_DEFAULT))
 		return 1;
 
-	str = STRDUP("(SCSI_IDENT_|ID_WWN)");
-	if (!str)
-		return 1;
-	if (store_ble(conf->elist_property, str, ORIGIN_DEFAULT))
-		return 1;
-
 	vector_foreach_slot (conf->hwtable, hwe, i) {
 		if (hwe->bl_product) {
 			if (_blacklist_device(conf->blist_device, hwe->vendor,
@@ -390,9 +384,12 @@ filter_property(struct config * conf, struct udev_device * udev)
 	 * This is the inverse of the 'normal' matching;
 	 * the environment variable _has_ to match.
 	 */
-	log_filter(devname, NULL, NULL, NULL, NULL,
-		   MATCH_PROPERTY_BLIST_MISSING);
-	return MATCH_PROPERTY_BLIST_MISSING;
+	if (VECTOR_SIZE(conf->elist_property)) {
+		log_filter(devname, NULL, NULL, NULL, NULL,
+			   MATCH_PROPERTY_BLIST_MISSING);
+		return MATCH_PROPERTY_BLIST_MISSING;
+	}
+	return 0;
 }
 
 void
diff --git a/multipath/multipath.conf.5 b/multipath/multipath.conf.5
index 30d8598..c45da9f 100644
--- a/multipath/multipath.conf.5
+++ b/multipath/multipath.conf.5
@@ -1179,10 +1179,6 @@ The \fIWorld Wide Identification\fR of a device.
 .TP
 .B property
 Regular expression of the udev property to be whitelisted.
-.RS
-.TP
-The default is: \fB(SCSI_IDENT_|ID_WWN)\fR
-.RE
 .TP
 .B device
 Subsection for the device description. This subsection recognizes the
@@ -1193,8 +1189,14 @@ keywords. For a full description of these keywords please see the \fIdevices\fR
 section description.
 .LP
 The \fIproperty\fR whitelist handling is different from the usual
-handling in the sense that the device \fIhas\fR to have a udev property that
-matches the whitelist, otherwise the device will be blacklisted. In these cases the message \fIblacklisted, udev property missing\fR will be displayed.
+handling in the sense that if the propery whitelist is set, the device
+\fIhas\fR to have a udev property that matches the whitelist, otherwise the
+device will be blacklisted. In these cases the message \fIblacklisted, udev
+property missing\fR will be displayed. For example settting the
+property blacklist_exception to \fB(SCSI_IDENT_|ID_WWN)\fR will blacklist
+all devices that have no udev property whose name regex matches either
+\fBSCSI_IDENT_\fR or \fBID_WWN\fR. This works to exclude most
+non-multipathable devices.
 .
 .
 .\" ----------------------------------------------------------------------------
-- 
2.7.4

