diff -u multipath-tools-0.4.8/debian/changelog multipath-tools-0.4.8/debian/changelog --- multipath-tools-0.4.8/debian/changelog +++ multipath-tools-0.4.8/debian/changelog @@ -1,3 +1,14 @@ +multipath-tools (0.4.8-14ubuntu11) oneiric; urgency=low + + * Fixes some return logic issues in the blacklist.c:_filter_path function + where using blacklist and blacklist_exceptions would cause multipathd to + improperly filter paths. (LP: #789229) + - The patch was created by Christophe Varoqui in 2007. + + http://www.redhat.com/archives/dm-devel/2007-November/msg00054.html + + 0013-libmultipath-filter_path-fix_blacklist_filter_exit.patch + + -- Craig Magina Fri, 27 May 2011 11:47:19 -0400 + multipath-tools (0.4.8-14ubuntu10) natty; urgency=low * pass '-p part' to kpartx in initramfs script, not '-p p', to diff -u multipath-tools-0.4.8/debian/patches/series multipath-tools-0.4.8/debian/patches/series --- multipath-tools-0.4.8/debian/patches/series +++ multipath-tools-0.4.8/debian/patches/series @@ -10,6 +10,7 @@ 0010-fix-URL-to-FAQ.patch 0011--kpartx-use-uint64_t-to-account-slices-start-size.patch 0012--libmultipath-Update-discovery-to-work-with-new-sys.patch +0013-libmultipath-filter_path-fix_blacklist_filter_exit.patch 1000--set-umask-in-multipathd.patch 1001--intel-mpath-prio-alua.patch 1002--Fix-for-uevent-devpath-handling.patch only in patch2: unchanged: --- multipath-tools-0.4.8.orig/debian/patches/0013-libmultipath-filter_path-fix_blacklist_filter_exit.patch +++ multipath-tools-0.4.8/debian/patches/0013-libmultipath-filter_path-fix_blacklist_filter_exit.patch @@ -0,0 +1,25 @@ +diff --git a/libmultipath/blacklist.c b/libmultipath/blacklist.c +index 9a058f7..6297516 100644 +--- a/libmultipath/blacklist.c ++++ b/libmultipath/blacklist.c +@@ -297,16 +297,14 @@ _filter_path (struct config * conf, struct path * pp) + int r; + + r = _filter_devnode(conf->blist_devnode, conf->elist_devnode,pp->dev); +- if (r) +- return r; +- r = _filter_wwid(conf->blist_wwid, conf->elist_wwid, pp->wwid); +- if (r) ++ if (r > 0) + return r; + r = _filter_device(conf->blist_device, conf->elist_device, + pp->vendor_id, pp->product_id); +- if (r) ++ if (r > 0) + return r; +- return 0; ++ r = _filter_wwid(conf->blist_wwid, conf->elist_wwid, pp->wwid); ++ return r; + } + + int