Blob Blame History Raw
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   | 12 ++++--------
 multipath/multipath.conf.5 | 14 ++++++--------
 2 files changed, 10 insertions(+), 16 deletions(-)

diff --git a/libmultipath/blacklist.c b/libmultipath/blacklist.c
index 318ec03..c0cfbca 100644
--- a/libmultipath/blacklist.c
+++ b/libmultipath/blacklist.c
@@ -204,12 +204,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 (find_blacklist_device(conf->blist_device,
@@ -394,9 +388,11 @@ filter_property(struct config * conf, struct udev_device * udev)
 	if (udev) {
 		/*
 		 * This is the inverse of the 'normal' matching;
-		 * the environment variable _has_ to match.
+		 * the environment variable _has_ to match
+		 * if a whitelist is present.
 		 */
-		r = MATCH_PROPERTY_BLIST_MISSING;
+		if (VECTOR_SIZE(conf->elist_property))
+			r = MATCH_PROPERTY_BLIST_MISSING;
 		udev_list_entry_foreach(list_entry,
 				udev_device_get_properties_list_entry(udev)) {
 
diff --git a/multipath/multipath.conf.5 b/multipath/multipath.conf.5
index 6333366..3dab26b 100644
--- a/multipath/multipath.conf.5
+++ b/multipath/multipath.conf.5
@@ -1195,16 +1195,14 @@ keywords. Both are regular expressions. For a full description of these keywords
 Regular expression for an udev property. All
 devices that have matching udev properties will be excluded/included.
 The handling of the \fIproperty\fR keyword is special,
-because devices \fBmust\fR have at least one whitelisted udev property;
+because if a property blacklist_exception is set, devices \fBmust\fR have at
+least one whitelisted udev property;
 otherwise they're treated as blacklisted, and the message
 "\fIblacklisted, udev property missing\fR" is displayed in the logs.
-.
-.RS
-.PP
-The default \fIblacklist exception\fR is: \fB(SCSI_IDENT_|ID_WWN)\fR, causing
-well-behaved SCSI devices and devices that provide a WWN (World Wide Number)
-to be included, and all others to be excluded.
-.RE
+For example, setting the property blacklist_exception to
+\fB(SCSI_IDENT_|ID_WWN)\fR, will cause well-behaved SCSI devices and devices
+that provide a WWN (World Wide Number) to be included, and all others to be
+excluded. This works to exclude most non-multipathable devices.
 .TP
 .B protocol
 Regular expression for the protocol of a device to be excluded/included.
-- 
2.7.4