From 7bda37ba557d9773d366a24a0ab7d8431c427ae3 Mon Sep 17 00:00:00 2001 From: wangjufeng Date: Fri, 10 Jan 2020 17:13:17 +0800 Subject: [PATCH] rename the package --- ...libmultipath-remove-last-of-rbd-code.patch | 41 ++ ...ultipath-fix-detect-alua-corner-case.patch | 35 ++ 0002-multipath-fix-setting-conf-version.patch | 39 ++ ...pathpersist-add-param-alltgpt-option.patch | 152 +++++ ...bmutipath-remove-unused-IDE-bus-type.patch | 25 + ...pathd-add-new-protocol-path-wildcard.patch | 92 +++ ...tipath-add-protocol-blacklist-option.patch | 425 +++++++++++++ ...-remove-_filter_-blacklist-functions.patch | 296 ++++++++++ ...change-to-work-with-old-make-version.patch | 28 + ...-multipath-tests-add-blacklist-tests.patch | 559 ++++++++++++++++++ ...sist-add-missing-param-rk-usage-info.patch | 25 + 0011-change-order-of-multipath.rules.patch | 39 ++ ...property-blacklist-exception-builtin.patch | 80 +++ ...-libmultipath-fix-set_int-error-path.patch | 34 ++ ...path-free-allocated-value-in-set_int.patch | 28 + ...ix-memory-issue-in-path_latency-prio.patch | 32 + ...ull-dereference-int-alloc_path_group.patch | 31 + ...ix-max-array-size-in-print_cmd_valid.patch | 31 + 6005-multipathd-minor-fixes.patch | 41 ++ ...ix-memory-leak-on-error-in-configure.patch | 68 +++ ...eck-for-NULL-udevice-in-cli_add_path.patch | 32 + ...tx-fix-apparent-out-of-bounds-access.patch | 28 + 6009-libmultipath-fix-apparent-overflow.patch | 28 + ...x-int-overflow-in-sysfs_set_scsi_tmo.patch | 27 + ...-fix-enum-misuse-for-find_multipaths.patch | 26 + ...tipath-fix-possible-NULL-dereference.patch | 28 + ...pp-hwe-handling-when-paths-are-freed.patch | 109 ++++ 6014-fix-syntax-error.patch | 25 + ...ultipathd-ignore-failed-wwid-recheck.patch | 74 +++ ...ath-group_by_prio-fix-signedness-bug.patch | 30 + ...dle-NULL-return-from-genhelp_handler.patch | 44 ++ ...-parsing-of-VPD-83-type-1-T10-vendor.patch | 50 ++ ...ix-buffer-overflow-in-parse_vpd_pg80.patch | 31 + ...-another-WWID-overflow-in-parse_vpd_.patch | 31 + ...-possible-WWID-overflow-in-parse_vpd.patch | 66 +++ ...-parsing-of-SCSI-name-string-iqn-for.patch | 34 ++ ...-double-free-in-pgpolicyfn-error-pat.patch | 81 +++ ...mount-VIMS-with-reservation-conflict.patch | 17 + ...ze-when-not-all-paths-size-are-equal.patch | 37 ++ ...le-queueing-for-recreated-map-in-uev.patch | 55 ++ ...g-paths-repeatedly-in-coalesce-paths.patch | 88 +++ ...fix-bugs-backported-from-next-branch.patch | 154 +++++ ...-reservation-key-to-uint8-for-memcmp.patch | 46 ++ ...bugfix-ignore-for-clear-mismatch-key.patch | 49 ++ ...-bugfix-flush-and-sync-before-reboot.patch | 17 + ...ix-RH-remove-local-disk-from-pathvec.patch | 206 +++++++ ...n-failure-when-there-is-offline-path.patch | 54 ++ ...mory-leaks-issues-in-libmpathpersist.patch | 162 +++++ ...-to-info-if-alua-is-not-support-by-s.patch | 26 + ...eference-when-path-is-freed-otherwis.patch | 139 +++++ ...th-fix-memory-leaks-from-scandir-use.patch | 91 +++ ...h-fix-memory-leak-in-disassemble_map.patch | 87 +++ 9015-bugfix-check-close-return-value.patch | 29 + 9016-fix-find-multipath-failure.patch | 28 + ...hange-kpartx-file-and-default-bindir.patch | 42 ++ multipath-tools-ef6d98b.tgz | Bin 0 -> 410741 bytes multipath-tools.spec | 234 ++++++++ multipath.conf | 93 +++ 58 files changed, 4499 insertions(+) create mode 100644 0000-libmultipath-remove-last-of-rbd-code.patch create mode 100644 0001-libmultipath-fix-detect-alua-corner-case.patch create mode 100644 0002-multipath-fix-setting-conf-version.patch create mode 100644 0003-mpathpersist-add-param-alltgpt-option.patch create mode 100644 0004-libmutipath-remove-unused-IDE-bus-type.patch create mode 100644 0005-multipathd-add-new-protocol-path-wildcard.patch create mode 100644 0006-libmultipath-add-protocol-blacklist-option.patch create mode 100644 0007-libmultipath-remove-_filter_-blacklist-functions.patch create mode 100644 0008-multipath-tests-change-to-work-with-old-make-version.patch create mode 100644 0009-multipath-tests-add-blacklist-tests.patch create mode 100644 0010-mpathpersist-add-missing-param-rk-usage-info.patch create mode 100644 0011-change-order-of-multipath.rules.patch create mode 100644 0012-RH-Remove-the-property-blacklist-exception-builtin.patch create mode 100644 6000-libmultipath-fix-set_int-error-path.patch create mode 100644 6001-libmultipath-free-allocated-value-in-set_int.patch create mode 100644 6002-libmultipath-fix-memory-issue-in-path_latency-prio.patch create mode 100644 6003-libmultipath-fix-null-dereference-int-alloc_path_group.patch create mode 100644 6004-multipath-fix-max-array-size-in-print_cmd_valid.patch create mode 100644 6005-multipathd-minor-fixes.patch create mode 100644 6006-multipathd-fix-memory-leak-on-error-in-configure.patch create mode 100644 6007-multipathd-check-for-NULL-udevice-in-cli_add_path.patch create mode 100644 6008-kpartx-fix-apparent-out-of-bounds-access.patch create mode 100644 6009-libmultipath-fix-apparent-overflow.patch create mode 100644 6010-libmultipath-fix-int-overflow-in-sysfs_set_scsi_tmo.patch create mode 100644 6011-libmultipath-fix-enum-misuse-for-find_multipaths.patch create mode 100644 6012-libmultipath-fix-possible-NULL-dereference.patch create mode 100644 6013-multipathd-fix-mpp-hwe-handling-when-paths-are-freed.patch create mode 100644 6014-fix-syntax-error.patch create mode 100644 6020-multipathd-ignore-failed-wwid-recheck.patch create mode 100644 6021-libmultipath-group_by_prio-fix-signedness-bug.patch create mode 100644 6022-multipathd-handle-NULL-return-from-genhelp_handler.patch create mode 100644 6023-libmultipath-fix-parsing-of-VPD-83-type-1-T10-vendor.patch create mode 100644 6024-libmultipath-Fix-buffer-overflow-in-parse_vpd_pg80.patch create mode 100644 6025-libmultipath-fix-another-WWID-overflow-in-parse_vpd_.patch create mode 100644 6026-libmultipath-fix-possible-WWID-overflow-in-parse_vpd.patch create mode 100644 6027-libmultipath-fix-parsing-of-SCSI-name-string-iqn-for.patch create mode 100644 6028-libmultipath-fix-double-free-in-pgpolicyfn-error-pat.patch create mode 100644 9000-fix-segfault-when-mount-or-umount-VIMS-with-reservation-conflict.patch create mode 100644 9001-fix-multipathd-resize-when-not-all-paths-size-are-equal.patch create mode 100644 9002-multipathd-disable-queueing-for-recreated-map-in-uev.patch create mode 100644 9003-avoid-handling-paths-repeatedly-in-coalesce-paths.patch create mode 100644 9004-fix-bugs-backported-from-next-branch.patch create mode 100644 9005-bugfix-fix-change-reservation-key-to-uint8-for-memcmp.patch create mode 100644 9006-bugfix-ignore-for-clear-mismatch-key.patch create mode 100644 9007-bugfix-flush-and-sync-before-reboot.patch create mode 100644 9008-bugfix-RH-remove-local-disk-from-pathvec.patch create mode 100644 9009-bugfix-lun-expansion-failure-when-there-is-offline-path.patch create mode 100644 9010-bugfix-some-memory-leaks-issues-in-libmpathpersist.patch create mode 100644 9011-bugfix-change-log-level-to-info-if-alua-is-not-support-by-s.patch create mode 100644 9012-bugfix-clear-mpp-path-reference-when-path-is-freed-otherwis.patch create mode 100644 9013-bugfix-libmultipath-fix-memory-leaks-from-scandir-use.patch create mode 100644 9014-bugfix-libmultipath-fix-memory-leak-in-disassemble_map.patch create mode 100644 9015-bugfix-check-close-return-value.patch create mode 100644 9016-fix-find-multipath-failure.patch create mode 100644 9017-change-kpartx-file-and-default-bindir.patch create mode 100644 multipath-tools-ef6d98b.tgz create mode 100644 multipath-tools.spec create mode 100644 multipath.conf diff --git a/0000-libmultipath-remove-last-of-rbd-code.patch b/0000-libmultipath-remove-last-of-rbd-code.patch new file mode 100644 index 0000000..7f26eb8 --- /dev/null +++ b/0000-libmultipath-remove-last-of-rbd-code.patch @@ -0,0 +1,41 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +Date: Fri, 1 Jun 2018 16:30:44 -0500 +Subject: [PATCH] libmultipath: remove last of rbd code + +My previous patch to remove the rbd code missed a little bit. + +Signed-off-by: Benjamin Marzinski +--- + kpartx/del-part-nodes.rules | 2 +- + libmultipath/structs.h | 1 - + 2 files changed, 1 insertion(+), 2 deletions(-) + +diff --git a/kpartx/del-part-nodes.rules b/kpartx/del-part-nodes.rules +index 17bc505..0ceecf5 100644 +--- a/kpartx/del-part-nodes.rules ++++ b/kpartx/del-part-nodes.rules +@@ -10,7 +10,7 @@ + # or create an udev rule file that sets ENV{DONT_DEL_PART_NODES}="1". + + SUBSYSTEM!="block", GOTO="end_del_part_nodes" +-KERNEL!="sd*|dasd*|rbd*", GOTO="end_del_part_nodes" ++KERNEL!="sd*|dasd*", GOTO="end_del_part_nodes" + ACTION!="add|change", GOTO="end_del_part_nodes" + ENV{DEVTYPE}=="partition", GOTO="end_del_part_nodes" + +diff --git a/libmultipath/structs.h b/libmultipath/structs.h +index e5b698b..ca14315 100644 +--- a/libmultipath/structs.h ++++ b/libmultipath/structs.h +@@ -61,7 +61,6 @@ enum sysfs_buses { + SYSFS_BUS_IDE, + SYSFS_BUS_CCW, + SYSFS_BUS_CCISS, +- SYSFS_BUS_RBD, + SYSFS_BUS_NVME, + }; + +-- +2.7.4 + diff --git a/0001-libmultipath-fix-detect-alua-corner-case.patch b/0001-libmultipath-fix-detect-alua-corner-case.patch new file mode 100644 index 0000000..6d6fa64 --- /dev/null +++ b/0001-libmultipath-fix-detect-alua-corner-case.patch @@ -0,0 +1,35 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +Date: Fri, 8 Jun 2018 17:12:37 -0500 +Subject: [PATCH] libmultipath: fix detect alua corner case + +If retain_attach_hw_handler = no, then the paths tpgs state will never +be checked, and the multipath device will always select the alua +handler, if no other handler is selected. the paths tpgs state +should be checked, regardless of the retain_hwhandler value. + +Signed-off-by: Benjamin Marzinski +--- + libmultipath/propsel.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/libmultipath/propsel.c b/libmultipath/propsel.c +index af3ed62..fdb5953 100644 +--- a/libmultipath/propsel.c ++++ b/libmultipath/propsel.c +@@ -420,9 +420,11 @@ int select_hwhandler(struct config *conf, struct multipath *mp) + bool all_tpgs = true; + + dh_state = &handler[2]; ++ ++ vector_foreach_slot(mp->paths, pp, i) ++ all_tpgs = all_tpgs && (pp->tpgs > 0); + if (mp->retain_hwhandler != RETAIN_HWHANDLER_OFF) { + vector_foreach_slot(mp->paths, pp, i) { +- all_tpgs = all_tpgs && (pp->tpgs > 0); + if (get_dh_state(pp, dh_state, sizeof(handler) - 2) > 0 + && strcmp(dh_state, "detached")) { + memcpy(handler, "1 ", 2); +-- +2.7.4 + diff --git a/0002-multipath-fix-setting-conf-version.patch b/0002-multipath-fix-setting-conf-version.patch new file mode 100644 index 0000000..624f45e --- /dev/null +++ b/0002-multipath-fix-setting-conf-version.patch @@ -0,0 +1,39 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +Date: Fri, 8 Jun 2018 17:23:07 -0500 +Subject: [PATCH] multipath: fix setting conf->version + +Commit d3b71498 stopped multipath from setting conf->version. Instead, +it was always being set to 0.0.0. Multipathd was still setting this +correctly. + +Fixes: d3b71498 "multipath: fix rcu thread cancellation hang" +Signed-off-by: Benjamin Marzinski +--- + libmultipath/devmapper.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/libmultipath/devmapper.c b/libmultipath/devmapper.c +index f2befad..8136d15 100644 +--- a/libmultipath/devmapper.c ++++ b/libmultipath/devmapper.c +@@ -245,13 +245,13 @@ void libmp_dm_init(void) + int verbosity; + unsigned int version[3]; + ++ if (dm_prereq(version)) ++ exit(1); + conf = get_multipath_config(); + verbosity = conf->verbosity; +- memcpy(version, conf->version, sizeof(version)); ++ memcpy(conf->version, version, sizeof(version)); + put_multipath_config(conf); + dm_init(verbosity); +- if (dm_prereq(version)) +- exit(1); + dm_udev_set_sync_support(libmp_dm_udev_sync); + } + +-- +2.7.4 + diff --git a/0003-mpathpersist-add-param-alltgpt-option.patch b/0003-mpathpersist-add-param-alltgpt-option.patch new file mode 100644 index 0000000..8485d37 --- /dev/null +++ b/0003-mpathpersist-add-param-alltgpt-option.patch @@ -0,0 +1,152 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +Date: Tue, 26 Jun 2018 16:30:11 -0500 +Subject: [PATCH] mpathpersist: add --param-alltgpt option + +From the limited testing I've been able to do, commit 5b54e772 +"mpathpersist: add all_tg_pt option", does appear to enable +--param-alltgpt to work correctly on devices that accept the ALL_TG_PT +flag, so I've added the option to mpathpersist. + +Signed-off-by: Benjamin Marzinski +--- + libmpathpersist/mpath_persist.c | 10 ++++------ + mpathpersist/main.c | 11 ++++++++--- + mpathpersist/main.h | 1 + + mpathpersist/mpathpersist.8 | 4 ++++ + multipath/multipath.conf.5 | 8 +++++--- + 5 files changed, 22 insertions(+), 12 deletions(-) + +diff --git a/libmpathpersist/mpath_persist.c b/libmpathpersist/mpath_persist.c +index 6e9e67f..61818e0 100644 +--- a/libmpathpersist/mpath_persist.c ++++ b/libmpathpersist/mpath_persist.c +@@ -466,11 +466,14 @@ int mpath_prout_reg(struct multipath *mpp,int rq_servact, int rq_scope, + int rc; + int count=0; + int status = MPATH_PR_SUCCESS; ++ int all_tg_pt; + uint64_t sa_key = 0; + + if (!mpp) + return MPATH_PR_DMMP_ERROR; + ++ all_tg_pt = (mpp->all_tg_pt == ALL_TG_PT_ON || ++ paramp->sa_flags & MPATH_F_ALL_TG_PT_MASK); + active_pathcount = pathcount(mpp, PATH_UP) + pathcount(mpp, PATH_GHOST); + + if (active_pathcount == 0) { +@@ -478,10 +481,6 @@ int mpath_prout_reg(struct multipath *mpp,int rq_servact, int rq_scope, + return MPATH_PR_DMMP_ERROR; + } + +- if ( paramp->sa_flags & MPATH_F_ALL_TG_PT_MASK ) { +- condlog (1, "Warning: ALL_TG_PT is set. Configuration not supported"); +- } +- + struct threadinfo thread[active_pathcount]; + int hosts[active_pathcount]; + +@@ -518,8 +517,7 @@ int mpath_prout_reg(struct multipath *mpp,int rq_servact, int rq_scope, + condlog (1, "%s: %s path not up. Skip.", mpp->wwid, pp->dev); + continue; + } +- if (mpp->all_tg_pt == ALL_TG_PT_ON && +- pp->sg_id.host_no != -1) { ++ if (all_tg_pt && pp->sg_id.host_no != -1) { + for (k = 0; k < count; k++) { + if (pp->sg_id.host_no == hosts[k]) { + condlog(3, "%s: %s host %d matches skip.", pp->wwid, pp->dev, pp->sg_id.host_no); +diff --git a/mpathpersist/main.c b/mpathpersist/main.c +index 5b37f3a..99151fe 100644 +--- a/mpathpersist/main.c ++++ b/mpathpersist/main.c +@@ -118,7 +118,7 @@ int main (int argc, char * argv[]) + { + int option_index = 0; + +- c = getopt_long (argc, argv, "v:Cd:hHioZK:S:PAT:skrGILcRX:l:", ++ c = getopt_long (argc, argv, "v:Cd:hHioYZK:S:PAT:skrGILcRX:l:", + long_options, &option_index); + if (c == -1) + break; +@@ -158,6 +158,10 @@ int main (int argc, char * argv[]) + prout_flag = 1; + break; + ++ case 'Y': ++ param_alltgpt = 1; ++ ++num_prout_param; ++ break; + case 'Z': + param_aptpl = 1; + ++num_prout_param; +@@ -443,9 +447,9 @@ int main (int argc, char * argv[]) + } + + if (param_alltgpt) +- paramp->sa_flags |= 0x4; ++ paramp->sa_flags |= MPATH_F_ALL_TG_PT_MASK; + if (param_aptpl) +- paramp->sa_flags |= 0x1; ++ paramp->sa_flags |= MPATH_F_APTPL_MASK; + + if (num_transport) + { +@@ -698,6 +702,7 @@ static void usage(void) + " --hex|-H output response in hex\n" + " --in|-i request PR In command \n" + " --out|-o request PR Out command\n" ++ " --param-alltgpt|-Y PR Out parameter 'ALL_TG_PT\n" + " --param-aptpl|-Z PR Out parameter 'APTPL'\n" + " --read-keys|-k PR In: Read Keys\n" + " --param-sark=SARK|-S SARK PR Out parameter service " +diff --git a/mpathpersist/main.h b/mpathpersist/main.h +index 5c0e089..beb8a21 100644 +--- a/mpathpersist/main.h ++++ b/mpathpersist/main.h +@@ -6,6 +6,7 @@ static struct option long_options[] = { + {"hex", 0, NULL, 'H'}, + {"in", 0, NULL, 'i'}, + {"out", 0, NULL, 'o'}, ++ {"param-alltgpt", 0, NULL, 'Y'}, + {"param-aptpl", 0, NULL, 'Z'}, + {"param-rk", 1, NULL, 'K'}, + {"param-sark", 1, NULL, 'S'}, +diff --git a/mpathpersist/mpathpersist.8 b/mpathpersist/mpathpersist.8 +index a8982e6..885491d 100644 +--- a/mpathpersist/mpathpersist.8 ++++ b/mpathpersist/mpathpersist.8 +@@ -87,6 +87,10 @@ Request PR In command. + Request PR Out command. + . + .TP ++.B \--param-alltgpt|\-Y ++PR Out parameter 'ALL_TG_PT'. ++. ++.TP + .B \--param-aptpl|\-Z + PR Out parameter 'APTPL'. + . +diff --git a/multipath/multipath.conf.5 b/multipath/multipath.conf.5 +index e4b25a0..fb863fd 100644 +--- a/multipath/multipath.conf.5 ++++ b/multipath/multipath.conf.5 +@@ -756,9 +756,11 @@ The default is: \fB\fR + . + .TP + .B all_tg_pt +-This must be set to \fByes\fR to successfully use mpathpersist on arrays that +-automatically set and clear registration keys on all target ports from a +-host, instead of per target port per host. ++Set the 'all targets ports' flag when registering keys with mpathpersist. Some ++arrays automatically set and clear registration keys on all target ports from a ++host, instead of per target port per host. The ALL_TG_PT flag must be set to ++successfully use mpathpersist on these arrays. Setting this option is identical ++to calling mpathpersist with \fI--param-alltgpt\fR + .RS + .TP + The default is: \fBno\fR +-- +2.7.4 + diff --git a/0004-libmutipath-remove-unused-IDE-bus-type.patch b/0004-libmutipath-remove-unused-IDE-bus-type.patch new file mode 100644 index 0000000..5dda5a7 --- /dev/null +++ b/0004-libmutipath-remove-unused-IDE-bus-type.patch @@ -0,0 +1,25 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +Date: Tue, 26 Jun 2018 16:45:48 -0500 +Subject: [PATCH] libmutipath: remove unused IDE bus type + +Signed-off-by: Benjamin Marzinski +--- + libmultipath/structs.h | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/libmultipath/structs.h b/libmultipath/structs.h +index ca14315..0a2623a 100644 +--- a/libmultipath/structs.h ++++ b/libmultipath/structs.h +@@ -58,7 +58,6 @@ enum failback_mode { + enum sysfs_buses { + SYSFS_BUS_UNDEF, + SYSFS_BUS_SCSI, +- SYSFS_BUS_IDE, + SYSFS_BUS_CCW, + SYSFS_BUS_CCISS, + SYSFS_BUS_NVME, +-- +2.7.4 + diff --git a/0005-multipathd-add-new-protocol-path-wildcard.patch b/0005-multipathd-add-new-protocol-path-wildcard.patch new file mode 100644 index 0000000..479788e --- /dev/null +++ b/0005-multipathd-add-new-protocol-path-wildcard.patch @@ -0,0 +1,92 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +Date: Tue, 26 Jun 2018 17:04:57 -0500 +Subject: [PATCH] multipathd: add new protocol path wildcard + +This patch adds a new path wildcard 'P', that will print the path's +protocol. For scsi devices, it will additionally print the transport +protocol being used. + +Signed-off-by: Benjamin Marzinski +--- + libmultipath/print.c | 43 +++++++++++++++++++++++++++++++++++++++++++ + libmultipath/print.h | 2 ++ + 2 files changed, 45 insertions(+) + +diff --git a/libmultipath/print.c b/libmultipath/print.c +index 222d270..ecfcb48 100644 +--- a/libmultipath/print.c ++++ b/libmultipath/print.c +@@ -638,6 +638,48 @@ snprint_path_failures(char * buff, size_t len, const struct path * pp) + return snprint_int(buff, len, pp->failcount); + } + ++/* if you add a protocol string bigger than "scsi:unspec" you must ++ * also change PROTOCOL_BUF_SIZE */ ++int ++snprint_path_protocol(char * buff, size_t len, const struct path * pp) ++{ ++ switch (pp->bus) { ++ case SYSFS_BUS_SCSI: ++ switch (pp->sg_id.proto_id) { ++ case SCSI_PROTOCOL_FCP: ++ return snprintf(buff, len, "scsi:fcp"); ++ case SCSI_PROTOCOL_SPI: ++ return snprintf(buff, len, "scsi:spi"); ++ case SCSI_PROTOCOL_SSA: ++ return snprintf(buff, len, "scsi:ssa"); ++ case SCSI_PROTOCOL_SBP: ++ return snprintf(buff, len, "scsi:sbp"); ++ case SCSI_PROTOCOL_SRP: ++ return snprintf(buff, len, "scsi:srp"); ++ case SCSI_PROTOCOL_ISCSI: ++ return snprintf(buff, len, "scsi:iscsi"); ++ case SCSI_PROTOCOL_SAS: ++ return snprintf(buff, len, "scsi:sas"); ++ case SCSI_PROTOCOL_ADT: ++ return snprintf(buff, len, "scsi:adt"); ++ case SCSI_PROTOCOL_ATA: ++ return snprintf(buff, len, "scsi:ata"); ++ case SCSI_PROTOCOL_UNSPEC: ++ default: ++ return snprintf(buff, len, "scsi:unspec"); ++ } ++ case SYSFS_BUS_CCW: ++ return snprintf(buff, len, "ccw"); ++ case SYSFS_BUS_CCISS: ++ return snprintf(buff, len, "cciss"); ++ case SYSFS_BUS_NVME: ++ return snprintf(buff, len, "nvme"); ++ case SYSFS_BUS_UNDEF: ++ default: ++ return snprintf(buff, len, "undef"); ++ } ++} ++ + struct multipath_data mpd[] = { + {'n', "name", 0, snprint_name}, + {'w', "uuid", 0, snprint_multipath_uuid}, +@@ -687,6 +729,7 @@ struct path_data pd[] = { + {'a', "host adapter", 0, snprint_host_adapter}, + {'G', "foreign", 0, snprint_path_foreign}, + {'0', "failures", 0, snprint_path_failures}, ++ {'P', "protocol", 0, snprint_path_protocol}, + {0, NULL, 0 , NULL} + }; + +diff --git a/libmultipath/print.h b/libmultipath/print.h +index 608b7d5..e2fb865 100644 +--- a/libmultipath/print.h ++++ b/libmultipath/print.h +@@ -133,6 +133,8 @@ int snprint_host_wwnn (char *, size_t, const struct path *); + int snprint_host_wwpn (char *, size_t, const struct path *); + int snprint_tgt_wwnn (char *, size_t, const struct path *); + int snprint_tgt_wwpn (char *, size_t, const struct path *); ++#define PROTOCOL_BUF_SIZE sizeof("scsi:unspec") ++int snprint_path_protocol(char *, size_t, const struct path *); + + void _print_multipath_topology (const struct gen_multipath * gmp, + int verbosity); +-- +2.7.4 + diff --git a/0006-libmultipath-add-protocol-blacklist-option.patch b/0006-libmultipath-add-protocol-blacklist-option.patch new file mode 100644 index 0000000..16a1899 --- /dev/null +++ b/0006-libmultipath-add-protocol-blacklist-option.patch @@ -0,0 +1,425 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +Date: Thu, 28 Jun 2018 13:16:11 -0500 +Subject: [PATCH] libmultipath: add "protocol" blacklist option. + +Multiple users have requested an easy way to setup blacklists that do +things such as blacklisting all non FC and iSCSI devices. Currently +there is no easy way to do this, without knowing in advance what the +devices are. Looking into the udev property values, I didn't see a +consistent set of values that would worked for all the different types +of requests like this (which would have allowed us to solve this by +extending the "property" blacklist option to allow comparing values, +instead of just keywords). + +Instead I've opted to allow multipath to blacklist/whitelist devices +by the protocol strings printed by "multipathd: add new protocol path +wildcard". This check happens after multipath checks the "device" +keyword, and before it checks wwid. This gives users an easily +understandible method to set up these types of blacklists, without +needing to know the exact arrays being used. + +Signed-off-by: Benjamin Marzinski +--- + libmultipath/blacklist.c | 51 ++++++++++++++++++++++++++++++++++++++-------- + libmultipath/blacklist.h | 3 +++ + libmultipath/config.c | 15 ++++++++++++++ + libmultipath/config.h | 2 ++ + libmultipath/dict.c | 14 +++++++++++-- + libmultipath/discovery.c | 5 +++-- + libmultipath/print.c | 31 ++++++++++++++++++++++++++++ + multipath/multipath.conf.5 | 16 +++++++++++++-- + 8 files changed, 123 insertions(+), 14 deletions(-) + +diff --git a/libmultipath/blacklist.c b/libmultipath/blacklist.c +index 361c603..fdd36f7 100644 +--- a/libmultipath/blacklist.c ++++ b/libmultipath/blacklist.c +@@ -12,6 +12,8 @@ + #include "structs.h" + #include "config.h" + #include "blacklist.h" ++#include "structs_vec.h" ++#include "print.h" + + int store_ble(vector blist, char * str, int origin) + { +@@ -240,12 +242,14 @@ setup_default_blist (struct config * conf) + condlog(3, "%s: %s %s %s", dev, (M), wwid, (S)); \ + else if (env) \ + condlog(3, "%s: %s %s %s", dev, (M), env, (S)); \ ++ else if (protocol) \ ++ condlog(3, "%s: %s %s %s", dev, (M), protocol, (S)); \ + else \ + condlog(3, "%s: %s %s", dev, (M), (S)) + + void + log_filter (const char *dev, char *vendor, char *product, char *wwid, +- const char *env, int r) ++ const char *env, const char *protocol, int r) + { + /* + * Try to sort from most likely to least. +@@ -265,6 +269,9 @@ log_filter (const char *dev, char *vendor, char *product, char *wwid, + case MATCH_PROPERTY_BLIST: + LOG_BLIST("udev property", "blacklisted"); + break; ++ case MATCH_PROTOCOL_BLIST: ++ LOG_BLIST("protocol", "blacklisted"); ++ break; + case MATCH_DEVICE_BLIST_EXCEPT: + LOG_BLIST("vendor/product", "whitelisted"); + break; +@@ -280,6 +287,9 @@ log_filter (const char *dev, char *vendor, char *product, char *wwid, + case MATCH_PROPERTY_BLIST_MISSING: + LOG_BLIST("blacklisted,", "udev property missing"); + break; ++ case MATCH_PROTOCOL_BLIST_EXCEPT: ++ LOG_BLIST("protocol", "whitelisted"); ++ break; + } + } + +@@ -299,7 +309,7 @@ int + filter_device (vector blist, vector elist, char * vendor, char * product) + { + int r = _filter_device(blist, elist, vendor, product); +- log_filter(NULL, vendor, product, NULL, NULL, r); ++ log_filter(NULL, vendor, product, NULL, NULL, NULL, r); + return r; + } + +@@ -319,7 +329,7 @@ int + filter_devnode (vector blist, vector elist, char * dev) + { + int r = _filter_devnode(blist, elist, dev); +- log_filter(dev, NULL, NULL, NULL, NULL, r); ++ log_filter(dev, NULL, NULL, NULL, NULL, NULL, r); + return r; + } + +@@ -339,7 +349,29 @@ int + filter_wwid (vector blist, vector elist, char * wwid, char * dev) + { + int r = _filter_wwid(blist, elist, wwid); +- log_filter(dev, NULL, NULL, wwid, NULL, r); ++ log_filter(dev, NULL, NULL, wwid, NULL, NULL, r); ++ return r; ++} ++ ++static int ++_filter_protocol (vector blist, vector elist, const char * protocol_str) ++{ ++ if (_blacklist_exceptions(elist, protocol_str)) ++ return MATCH_PROTOCOL_BLIST_EXCEPT; ++ if (_blacklist(blist, protocol_str)) ++ return MATCH_PROTOCOL_BLIST; ++ return 0; ++} ++ ++int ++filter_protocol(vector blist, vector elist, struct path * pp) ++{ ++ char buf[PROTOCOL_BUF_SIZE]; ++ int r; ++ ++ snprint_path_protocol(buf, sizeof(buf), pp); ++ r = _filter_protocol(blist, elist, buf); ++ log_filter(pp->dev, NULL, NULL, NULL, NULL, buf, r); + return r; + } + +@@ -351,7 +383,6 @@ _filter_path (struct config * conf, struct path * pp) + r = filter_property(conf, pp->udev); + if (r > 0) + return r; +- + r = _filter_devnode(conf->blist_devnode, conf->elist_devnode,pp->dev); + if (r > 0) + return r; +@@ -359,6 +390,9 @@ _filter_path (struct config * conf, struct path * pp) + pp->vendor_id, pp->product_id); + if (r > 0) + return r; ++ r = filter_protocol(conf->blist_protocol, conf->elist_protocol, pp); ++ if (r > 0) ++ return r; + r = _filter_wwid(conf->blist_wwid, conf->elist_wwid, pp->wwid); + return r; + } +@@ -367,7 +401,8 @@ int + filter_path (struct config * conf, struct path * pp) + { + int r=_filter_path(conf, pp); +- log_filter(pp->dev, pp->vendor_id, pp->product_id, pp->wwid, NULL, r); ++ log_filter(pp->dev, pp->vendor_id, pp->product_id, pp->wwid, NULL, ++ NULL, r); + return r; + } + +@@ -402,7 +437,7 @@ filter_property(struct config * conf, struct udev_device * udev) + + r = _filter_property(conf, env); + if (r) { +- log_filter(devname, NULL, NULL, NULL, env, r); ++ log_filter(devname, NULL, NULL, NULL, env, NULL, r); + return r; + } + } +@@ -411,7 +446,7 @@ 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, ++ log_filter(devname, NULL, NULL, NULL, NULL, NULL, + MATCH_PROPERTY_BLIST_MISSING); + return MATCH_PROPERTY_BLIST_MISSING; + } +diff --git a/libmultipath/blacklist.h b/libmultipath/blacklist.h +index 0b028d4..f7beef2 100644 +--- a/libmultipath/blacklist.h ++++ b/libmultipath/blacklist.h +@@ -10,10 +10,12 @@ + #define MATCH_DEVNODE_BLIST 3 + #define MATCH_PROPERTY_BLIST 4 + #define MATCH_PROPERTY_BLIST_MISSING 5 ++#define MATCH_PROTOCOL_BLIST 6 + #define MATCH_WWID_BLIST_EXCEPT -MATCH_WWID_BLIST + #define MATCH_DEVICE_BLIST_EXCEPT -MATCH_DEVICE_BLIST + #define MATCH_DEVNODE_BLIST_EXCEPT -MATCH_DEVNODE_BLIST + #define MATCH_PROPERTY_BLIST_EXCEPT -MATCH_PROPERTY_BLIST ++#define MATCH_PROTOCOL_BLIST_EXCEPT -MATCH_PROTOCOL_BLIST + + struct blentry { + char * str; +@@ -36,6 +38,7 @@ int filter_wwid (vector, vector, char *, char *); + int filter_device (vector, vector, char *, char *); + int filter_path (struct config *, struct path *); + int filter_property(struct config *, struct udev_device *); ++int filter_protocol(vector, vector, struct path *); + int store_ble (vector, char *, int); + int set_ble_device (vector, char *, char *, int); + void free_blacklist (vector); +diff --git a/libmultipath/config.c b/libmultipath/config.c +index afa309d..0aef186 100644 +--- a/libmultipath/config.c ++++ b/libmultipath/config.c +@@ -623,11 +623,13 @@ free_config (struct config * conf) + free_blacklist(conf->blist_devnode); + free_blacklist(conf->blist_wwid); + free_blacklist(conf->blist_property); ++ free_blacklist(conf->blist_protocol); + free_blacklist_device(conf->blist_device); + + free_blacklist(conf->elist_devnode); + free_blacklist(conf->elist_wwid); + free_blacklist(conf->elist_property); ++ free_blacklist(conf->elist_protocol); + free_blacklist_device(conf->elist_device); + + free_mptable(conf->mptable); +@@ -780,6 +782,12 @@ load_config (char * file) + if (!conf->blist_property) + goto out; + } ++ if (conf->blist_protocol == NULL) { ++ conf->blist_protocol = vector_alloc(); ++ ++ if (!conf->blist_protocol) ++ goto out; ++ } + + if (conf->elist_devnode == NULL) { + conf->elist_devnode = vector_alloc(); +@@ -807,6 +815,13 @@ load_config (char * file) + if (!conf->elist_property) + goto out; + } ++ if (conf->elist_protocol == NULL) { ++ conf->elist_protocol = vector_alloc(); ++ ++ if (!conf->elist_protocol) ++ goto out; ++ } ++ + if (setup_default_blist(conf)) + goto out; + +diff --git a/libmultipath/config.h b/libmultipath/config.h +index 6bd42f0..7d0cd9a 100644 +--- a/libmultipath/config.h ++++ b/libmultipath/config.h +@@ -210,10 +210,12 @@ struct config { + vector blist_wwid; + vector blist_device; + vector blist_property; ++ vector blist_protocol; + vector elist_devnode; + vector elist_wwid; + vector elist_device; + vector elist_property; ++ vector elist_protocol; + }; + + extern struct udev * udev; +diff --git a/libmultipath/dict.c b/libmultipath/dict.c +index 15e7582..32524d5 100644 +--- a/libmultipath/dict.c ++++ b/libmultipath/dict.c +@@ -1291,9 +1291,12 @@ blacklist_handler(struct config *conf, vector strvec) + conf->blist_device = vector_alloc(); + if (!conf->blist_property) + conf->blist_property = vector_alloc(); ++ if (!conf->blist_protocol) ++ conf->blist_protocol = vector_alloc(); + + if (!conf->blist_devnode || !conf->blist_wwid || +- !conf->blist_device || !conf->blist_property) ++ !conf->blist_device || !conf->blist_property || ++ !conf->blist_protocol) + return 1; + + return 0; +@@ -1310,9 +1313,12 @@ blacklist_exceptions_handler(struct config *conf, vector strvec) + conf->elist_device = vector_alloc(); + if (!conf->elist_property) + conf->elist_property = vector_alloc(); ++ if (!conf->elist_protocol) ++ conf->elist_protocol = vector_alloc(); + + if (!conf->elist_devnode || !conf->elist_wwid || +- !conf->elist_device || !conf->elist_property) ++ !conf->elist_device || !conf->elist_property || ++ !conf->elist_protocol) + return 1; + + return 0; +@@ -1356,6 +1362,8 @@ declare_ble_handler(blist_wwid) + declare_ble_handler(elist_wwid) + declare_ble_handler(blist_property) + declare_ble_handler(elist_property) ++declare_ble_handler(blist_protocol) ++declare_ble_handler(elist_protocol) + + static int + snprint_def_uxsock_timeout(struct config *conf, char * buff, int len, +@@ -1627,6 +1635,7 @@ init_keywords(vector keywords) + install_keyword_multi("devnode", &ble_blist_devnode_handler, &snprint_ble_simple); + install_keyword_multi("wwid", &ble_blist_wwid_handler, &snprint_ble_simple); + install_keyword_multi("property", &ble_blist_property_handler, &snprint_ble_simple); ++ install_keyword_multi("protocol", &ble_blist_protocol_handler, &snprint_ble_simple); + install_keyword_multi("device", &ble_device_handler, NULL); + install_sublevel(); + install_keyword("vendor", &ble_blist_device_vendor_handler, &snprint_bled_vendor); +@@ -1636,6 +1645,7 @@ init_keywords(vector keywords) + install_keyword_multi("devnode", &ble_elist_devnode_handler, &snprint_ble_simple); + install_keyword_multi("wwid", &ble_elist_wwid_handler, &snprint_ble_simple); + install_keyword_multi("property", &ble_elist_property_handler, &snprint_ble_simple); ++ install_keyword_multi("protocol", &ble_elist_protocol_handler, &snprint_ble_simple); + install_keyword_multi("device", &ble_except_device_handler, NULL); + install_sublevel(); + install_keyword("vendor", &ble_elist_device_vendor_handler, &snprint_bled_vendor); +diff --git a/libmultipath/discovery.c b/libmultipath/discovery.c +index 573d98b..e58a3fa 100644 +--- a/libmultipath/discovery.c ++++ b/libmultipath/discovery.c +@@ -1887,9 +1887,10 @@ int pathinfo(struct path *pp, struct config *conf, int mask) + + if (mask & DI_BLACKLIST && mask & DI_SYSFS) { + if (filter_device(conf->blist_device, conf->elist_device, +- pp->vendor_id, pp->product_id) > 0) { ++ pp->vendor_id, pp->product_id) > 0 || ++ filter_protocol(conf->blist_protocol, conf->elist_protocol, ++ pp) > 0) + return PATHINFO_SKIPPED; +- } + } + + path_state = path_offline(pp); +diff --git a/libmultipath/print.c b/libmultipath/print.c +index ecfcb48..9da6a77 100644 +--- a/libmultipath/print.c ++++ b/libmultipath/print.c +@@ -1688,6 +1688,19 @@ int snprint_blacklist_report(struct config *conf, char *buff, int len) + + if ((len - fwd - threshold) <= 0) + return len; ++ fwd += snprintf(buff + fwd, len - fwd, "protocol rules:\n" ++ "- blacklist:\n"); ++ if (!snprint_blacklist_group(buff, len, &fwd, &conf->blist_protocol)) ++ return len; ++ ++ if ((len - fwd - threshold) <= 0) ++ return len; ++ fwd += snprintf(buff + fwd, len - fwd, "- exceptions:\n"); ++ if (snprint_blacklist_group(buff, len, &fwd, &conf->elist_protocol) == 0) ++ return len; ++ ++ if ((len - fwd - threshold) <= 0) ++ return len; + fwd += snprintf(buff + fwd, len - fwd, "wwid rules:\n" + "- blacklist:\n"); + if (snprint_blacklist_group(buff, len, &fwd, &conf->blist_wwid) == 0) +@@ -1761,6 +1774,15 @@ static int snprint_blacklist(const struct config *conf, char *buff, int len) + if (fwd >= len) + return len; + } ++ vector_foreach_slot (conf->blist_protocol, ble, i) { ++ kw = find_keyword(conf->keywords, rootkw->sub, "protocol"); ++ if (!kw) ++ return 0; ++ fwd += snprint_keyword(buff + fwd, len - fwd, "\t%k %v\n", ++ kw, ble); ++ if (fwd >= len) ++ return len; ++ } + rootkw = find_keyword(conf->keywords, rootkw->sub, "device"); + if (!rootkw) + return 0; +@@ -1838,6 +1860,15 @@ static int snprint_blacklist_except(const struct config *conf, + if (fwd >= len) + return len; + } ++ vector_foreach_slot (conf->elist_protocol, ele, i) { ++ kw = find_keyword(conf->keywords, rootkw->sub, "protocol"); ++ if (!kw) ++ return 0; ++ fwd += snprint_keyword(buff + fwd, len - fwd, "\t%k %v\n", ++ kw, ele); ++ if (fwd >= len) ++ return len; ++ } + rootkw = find_keyword(conf->keywords, rootkw->sub, "device"); + if (!rootkw) + return 0; +diff --git a/multipath/multipath.conf.5 b/multipath/multipath.conf.5 +index fb863fd..6333366 100644 +--- a/multipath/multipath.conf.5 ++++ b/multipath/multipath.conf.5 +@@ -1205,9 +1205,21 @@ 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 ++.TP ++.B protocol ++Regular expression for the protocol of a device to be excluded/included. ++.RS ++.PP ++The protocol strings that multipath recognizes are \fIscsi:fcp\fR, ++\fIscsi:spi\fR, \fIscsi:ssa\fR, \fIscsi:sbp\fR, \fIscsi:srp\fR, ++\fIscsi:iscsi\fR, \fIscsi:sas\fR, \fIscsi:adt\fR, \fIscsi:ata\fR, ++\fIscsi:unspec\fR, \fIccw\fR, \fIcciss\fR, \fInvme\fR, and \fIundef\fR. ++The protocol that a path is using can be viewed by running ++\fBmultipathd show paths format "%d %P"\fR ++.RE + .LP +-For every device, these 4 blacklist criteria are evaluated in the the order +-"property, dev\%node, device, wwid". If a device turns out to be ++For every device, these 5 blacklist criteria are evaluated in the the order ++"property, dev\%node, device, protocol, wwid". If a device turns out to be + blacklisted by any criterion, it's excluded from handling by multipathd, and + the later criteria aren't evaluated any more. For each + criterion, the whitelist takes precedence over the blacklist if a device +-- +2.7.4 + diff --git a/0007-libmultipath-remove-_filter_-blacklist-functions.patch b/0007-libmultipath-remove-_filter_-blacklist-functions.patch new file mode 100644 index 0000000..b8e8e07 --- /dev/null +++ b/0007-libmultipath-remove-_filter_-blacklist-functions.patch @@ -0,0 +1,296 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +Date: Tue, 3 Jul 2018 19:15:03 -0500 +Subject: [PATCH] libmultipath: remove _filter_* blacklist functions + +The one point of these functions was for _filter_path(), and that wasn't +improved by using them. Since filter_path() only printed one message at +the end, you could have situations where the wwid was blacklisted, but +the blacklist message included the vendor/product instead. Also, the +protocol and property messages were printed twice, and if the device was +on multiple whitelists, only the last one is printed. + +Signed-off-by: Benjamin Marzinski +--- + libmultipath/blacklist.c | 168 +++++++++++++++++++---------------------------- + libmultipath/blacklist.h | 2 +- + libmultipath/configure.c | 2 +- + libmultipath/discovery.c | 2 +- + 4 files changed, 71 insertions(+), 103 deletions(-) + +diff --git a/libmultipath/blacklist.c b/libmultipath/blacklist.c +index fdd36f7..318ec03 100644 +--- a/libmultipath/blacklist.c ++++ b/libmultipath/blacklist.c +@@ -294,161 +294,129 @@ log_filter (const char *dev, char *vendor, char *product, char *wwid, + } + + int +-_filter_device (vector blist, vector elist, char * vendor, char * product) ++filter_device (vector blist, vector elist, char * vendor, char * product, ++ char * dev) + { +- if (!vendor || !product) +- return 0; +- if (_blacklist_exceptions_device(elist, vendor, product)) +- return MATCH_DEVICE_BLIST_EXCEPT; +- if (_blacklist_device(blist, vendor, product)) +- return MATCH_DEVICE_BLIST; +- return 0; +-} ++ int r = MATCH_NOTHING; + +-int +-filter_device (vector blist, vector elist, char * vendor, char * product) +-{ +- int r = _filter_device(blist, elist, vendor, product); +- log_filter(NULL, vendor, product, NULL, NULL, NULL, r); +- return r; +-} ++ if (vendor && product) { ++ if (_blacklist_exceptions_device(elist, vendor, product)) ++ r = MATCH_DEVICE_BLIST_EXCEPT; ++ else if (_blacklist_device(blist, vendor, product)) ++ r = MATCH_DEVICE_BLIST; ++ } + +-int +-_filter_devnode (vector blist, vector elist, char * dev) +-{ +- if (!dev) +- return 0; +- if (_blacklist_exceptions(elist, dev)) +- return MATCH_DEVNODE_BLIST_EXCEPT; +- if (_blacklist(blist, dev)) +- return MATCH_DEVNODE_BLIST; +- return 0; ++ log_filter(dev, vendor, product, NULL, NULL, NULL, r); ++ return r; + } + + int + filter_devnode (vector blist, vector elist, char * dev) + { +- int r = _filter_devnode(blist, elist, dev); ++ int r = MATCH_NOTHING; ++ ++ if (dev) { ++ if (_blacklist_exceptions(elist, dev)) ++ r = MATCH_DEVNODE_BLIST_EXCEPT; ++ else if (_blacklist(blist, dev)) ++ r = MATCH_DEVNODE_BLIST; ++ } ++ + log_filter(dev, NULL, NULL, NULL, NULL, NULL, r); + return r; + } + + int +-_filter_wwid (vector blist, vector elist, char * wwid) +-{ +- if (!wwid) +- return 0; +- if (_blacklist_exceptions(elist, wwid)) +- return MATCH_WWID_BLIST_EXCEPT; +- if (_blacklist(blist, wwid)) +- return MATCH_WWID_BLIST; +- return 0; +-} +- +-int + filter_wwid (vector blist, vector elist, char * wwid, char * dev) + { +- int r = _filter_wwid(blist, elist, wwid); ++ int r = MATCH_NOTHING; ++ ++ if (wwid) { ++ if (_blacklist_exceptions(elist, wwid)) ++ r = MATCH_WWID_BLIST_EXCEPT; ++ else if (_blacklist(blist, wwid)) ++ r = MATCH_WWID_BLIST; ++ } ++ + log_filter(dev, NULL, NULL, wwid, NULL, NULL, r); + return r; + } + +-static int +-_filter_protocol (vector blist, vector elist, const char * protocol_str) +-{ +- if (_blacklist_exceptions(elist, protocol_str)) +- return MATCH_PROTOCOL_BLIST_EXCEPT; +- if (_blacklist(blist, protocol_str)) +- return MATCH_PROTOCOL_BLIST; +- return 0; +-} +- + int + filter_protocol(vector blist, vector elist, struct path * pp) + { + char buf[PROTOCOL_BUF_SIZE]; +- int r; ++ int r = MATCH_NOTHING; ++ ++ if (pp) { ++ snprint_path_protocol(buf, sizeof(buf), pp); ++ ++ if (_blacklist_exceptions(elist, buf)) ++ r = MATCH_PROTOCOL_BLIST_EXCEPT; ++ else if (_blacklist(blist, buf)) ++ r = MATCH_PROTOCOL_BLIST; ++ } + +- snprint_path_protocol(buf, sizeof(buf), pp); +- r = _filter_protocol(blist, elist, buf); + log_filter(pp->dev, NULL, NULL, NULL, NULL, buf, r); + return r; + } + + int +-_filter_path (struct config * conf, struct path * pp) ++filter_path (struct config * conf, struct path * pp) + { + int r; + + r = filter_property(conf, pp->udev); + if (r > 0) + return r; +- r = _filter_devnode(conf->blist_devnode, conf->elist_devnode,pp->dev); ++ r = filter_devnode(conf->blist_devnode, conf->elist_devnode, pp->dev); + if (r > 0) + return r; +- r = _filter_device(conf->blist_device, conf->elist_device, +- pp->vendor_id, pp->product_id); ++ r = filter_device(conf->blist_device, conf->elist_device, ++ pp->vendor_id, pp->product_id, pp->dev); + if (r > 0) + return r; + r = filter_protocol(conf->blist_protocol, conf->elist_protocol, pp); + if (r > 0) + return r; +- r = _filter_wwid(conf->blist_wwid, conf->elist_wwid, pp->wwid); ++ r = filter_wwid(conf->blist_wwid, conf->elist_wwid, pp->wwid, pp->dev); + return r; + } + + int +-filter_path (struct config * conf, struct path * pp) +-{ +- int r=_filter_path(conf, pp); +- log_filter(pp->dev, pp->vendor_id, pp->product_id, pp->wwid, NULL, +- NULL, r); +- return r; +-} +- +-int +-_filter_property (struct config *conf, const char *env) +-{ +- if (_blacklist_exceptions(conf->elist_property, env)) +- return MATCH_PROPERTY_BLIST_EXCEPT; +- if (_blacklist(conf->blist_property, env)) +- return MATCH_PROPERTY_BLIST; +- +- return 0; +-} +- +-int + filter_property(struct config * conf, struct udev_device * udev) + { + const char *devname = udev_device_get_sysname(udev); + struct udev_list_entry *list_entry; +- int r; +- +- if (!udev) +- return 0; +- +- udev_list_entry_foreach(list_entry, ++ const char *env = NULL; ++ int r = MATCH_NOTHING; ++ ++ if (udev) { ++ /* ++ * This is the inverse of the 'normal' matching; ++ * the environment variable _has_ to match. ++ */ ++ r = MATCH_PROPERTY_BLIST_MISSING; ++ udev_list_entry_foreach(list_entry, + udev_device_get_properties_list_entry(udev)) { +- const char *env; +- +- env = udev_list_entry_get_name(list_entry); +- if (!env) +- continue; + +- r = _filter_property(conf, env); +- if (r) { +- log_filter(devname, NULL, NULL, NULL, env, NULL, r); +- return r; ++ env = udev_list_entry_get_name(list_entry); ++ if (!env) ++ continue; ++ if (_blacklist_exceptions(conf->elist_property, env)) { ++ r = MATCH_PROPERTY_BLIST_EXCEPT; ++ break; ++ } ++ if (_blacklist(conf->blist_property, env)) { ++ r = MATCH_PROPERTY_BLIST; ++ break; ++ } ++ env = NULL; + } + } + +- /* +- * This is the inverse of the 'normal' matching; +- * the environment variable _has_ to match. +- */ +- log_filter(devname, NULL, NULL, NULL, NULL, NULL, +- MATCH_PROPERTY_BLIST_MISSING); +- return MATCH_PROPERTY_BLIST_MISSING; ++ log_filter(devname, NULL, NULL, NULL, env, NULL, r); ++ return r; + } + + static void free_ble(struct blentry *ble) +diff --git a/libmultipath/blacklist.h b/libmultipath/blacklist.h +index f7beef2..18903b6 100644 +--- a/libmultipath/blacklist.h ++++ b/libmultipath/blacklist.h +@@ -35,7 +35,7 @@ int setup_default_blist (struct config *); + int alloc_ble_device (vector); + int filter_devnode (vector, vector, char *); + int filter_wwid (vector, vector, char *, char *); +-int filter_device (vector, vector, char *, char *); ++int filter_device (vector, vector, char *, char *, char *); + int filter_path (struct config *, struct path *); + int filter_property(struct config *, struct udev_device *); + int filter_protocol(vector, vector, struct path *); +diff --git a/libmultipath/configure.c b/libmultipath/configure.c +index 5c54f9b..09c3dcf 100644 +--- a/libmultipath/configure.c ++++ b/libmultipath/configure.c +@@ -1030,7 +1030,7 @@ int coalesce_paths (struct vectors * vecs, vector newmp, char * refwwid, + invalid = 1; + pthread_cleanup_pop(1); + if (invalid) { +- orphan_path(pp1, "wwid blacklisted"); ++ orphan_path(pp1, "blacklisted"); + continue; + } + +diff --git a/libmultipath/discovery.c b/libmultipath/discovery.c +index e58a3fa..0b1855d 100644 +--- a/libmultipath/discovery.c ++++ b/libmultipath/discovery.c +@@ -1887,7 +1887,7 @@ int pathinfo(struct path *pp, struct config *conf, int mask) + + if (mask & DI_BLACKLIST && mask & DI_SYSFS) { + if (filter_device(conf->blist_device, conf->elist_device, +- pp->vendor_id, pp->product_id) > 0 || ++ pp->vendor_id, pp->product_id, pp->dev) > 0 || + filter_protocol(conf->blist_protocol, conf->elist_protocol, + pp) > 0) + return PATHINFO_SKIPPED; +-- +2.7.4 + diff --git a/0008-multipath-tests-change-to-work-with-old-make-version.patch b/0008-multipath-tests-change-to-work-with-old-make-version.patch new file mode 100644 index 0000000..186015a --- /dev/null +++ b/0008-multipath-tests-change-to-work-with-old-make-version.patch @@ -0,0 +1,28 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +Date: Tue, 3 Jul 2018 19:59:33 -0500 +Subject: [PATCH] multipath tests: change to work with old make versions + +the $(file <) operation only works with make 4.2 and above. I tried +running the tests on an old machine and it failed. The $shell function +can do the same thing and multipath has been using that in its +Makefiles for a while. + +Signed-off-by: Benjamin Marzinski +--- + tests/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/Makefile b/tests/Makefile +index 78755ed..d293c87 100644 +--- a/tests/Makefile ++++ b/tests/Makefile +@@ -51,4 +51,4 @@ COLON:=: + $(multipathdir)/libmultipath.so Makefile + $(CC) $(CFLAGS) -o $@ $(LDFLAGS) $< $($@_TESTDEPS) $($@_OBJDEPS) \ + $(LIBDEPS) $($@_LIBDEPS) \ +- $(file <$<.wrap) $(foreach dep,$($@_TESTDEPS),$(file <$(dep).wrap)) ++ $(shell cat $<.wrap) $(foreach dep,$($@_TESTDEPS),$(shell cat $(dep).wrap)) +-- +2.7.4 + diff --git a/0009-multipath-tests-add-blacklist-tests.patch b/0009-multipath-tests-add-blacklist-tests.patch new file mode 100644 index 0000000..cf7eff8 --- /dev/null +++ b/0009-multipath-tests-add-blacklist-tests.patch @@ -0,0 +1,559 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +Date: Thu, 12 Jul 2018 17:53:38 -0500 +Subject: [PATCH] multipath tests: add blacklist tests + +These are tests to validate the filter_* blacklist functions. They not +only verify that the device is correctly blacklisted/whitelisted, but +they also verify the log messages that are printed out. + +Signed-off-by: Benjamin Marzinski +--- + tests/Makefile | 4 +- + tests/blacklist.c | 512 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 515 insertions(+), 1 deletion(-) + create mode 100644 tests/blacklist.c + +diff --git a/tests/Makefile b/tests/Makefile +index d293c87..98b5c93 100644 +--- a/tests/Makefile ++++ b/tests/Makefile +@@ -3,7 +3,7 @@ include ../Makefile.inc + CFLAGS += $(BIN_CFLAGS) -I$(multipathdir) -I$(mpathcmddir) + LIBDEPS += -L$(multipathdir) -lmultipath -lcmocka + +-TESTS := uevent parser util dmevents hwtable ++TESTS := uevent parser util dmevents hwtable blacklist + + .SILENT: $(TESTS:%=%.o) + .PRECIOUS: $(TESTS:%=%-test) +@@ -23,6 +23,8 @@ hwtable-test_TESTDEPS := test-lib.o + hwtable-test_OBJDEPS := ../libmultipath/discovery.o ../libmultipath/blacklist.o \ + ../libmultipath/prio.o ../libmultipath/callout.o ../libmultipath/structs.o + hwtable-test_LIBDEPS := -ludev -lpthread -ldl ++blacklist-test_OBJDEPS := ../libmultipath/blacklist.o ++blacklist-test_LIBDEPS := -ludev + + %.out: %-test + @echo == running $< == +diff --git a/tests/blacklist.c b/tests/blacklist.c +new file mode 100644 +index 0000000..a55c1c0 +--- /dev/null ++++ b/tests/blacklist.c +@@ -0,0 +1,512 @@ ++/* ++ * Copyright (c) 2018 Benjamin Marzinski, Redhat ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 2 ++ * of the License, or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program. If not, see . ++ * ++ */ ++#include ++#include ++#include ++#include ++#include "globals.c" ++#include "blacklist.h" ++#include "log.h" ++ ++struct udev_device { ++ const char *sysname; ++ char *property_list[]; ++}; ++ ++const char * ++__wrap_udev_device_get_sysname(struct udev_device *udev_device) ++{ ++ assert_non_null(udev_device); ++ assert_non_null(udev_device->sysname); ++ return udev_device->sysname; ++} ++ ++struct udev_list_entry * ++__wrap_udev_device_get_properties_list_entry(struct udev_device *udev_device) ++{ ++ assert_non_null(udev_device); ++ if (!udev_device->property_list) ++ return NULL; ++ if (!*udev_device->property_list) ++ return NULL; ++ return (struct udev_list_entry *)udev_device->property_list; ++} ++ ++struct udev_list_entry * ++__wrap_udev_list_entry_get_next(struct udev_list_entry *list_entry) ++{ ++ assert_non_null(list_entry); ++ if (!*((char **)list_entry + 1)) ++ return NULL; ++ return (struct udev_list_entry *)(((char **)list_entry) + 1); ++} ++ ++const char * ++__wrap_udev_list_entry_get_name(struct udev_list_entry *list_entry) ++{ ++ return *(const char **)list_entry; ++} ++ ++void __wrap_dlog (int sink, int prio, const char * fmt, ...) ++{ ++ char buff[MAX_MSG_SIZE]; ++ va_list ap; ++ ++ assert_int_equal(prio, mock_type(int)); ++ va_start(ap, fmt); ++ vsnprintf(buff, MAX_MSG_SIZE, fmt, ap); ++ va_end(ap); ++ assert_string_equal(buff, mock_ptr_type(char *)); ++} ++ ++void expect_condlog(int prio, char *string) ++{ ++ will_return(__wrap_dlog, prio); ++ will_return(__wrap_dlog, string); ++} ++ ++vector blist_devnode_sdb; ++vector blist_all; ++vector blist_device_foo_bar; ++vector blist_device_all; ++vector blist_wwid_xyzzy; ++vector blist_protocol_fcp; ++vector blist_property_wwn; ++ ++static int setup(void **state) ++{ ++ blist_devnode_sdb = vector_alloc(); ++ if (!blist_devnode_sdb || ++ store_ble(blist_devnode_sdb, strdup("sdb"), ORIGIN_CONFIG)) ++ return -1; ++ ++ blist_all = vector_alloc(); ++ if (!blist_all || store_ble(blist_all, strdup(".*"), ORIGIN_CONFIG)) ++ return -1; ++ ++ blist_device_foo_bar = vector_alloc(); ++ if (!blist_device_foo_bar || alloc_ble_device(blist_device_foo_bar) || ++ set_ble_device(blist_device_foo_bar, strdup("foo"), strdup("bar"), ++ ORIGIN_CONFIG)) ++ return -1; ++ ++ blist_device_all = vector_alloc(); ++ if (!blist_device_all || alloc_ble_device(blist_device_all) || ++ set_ble_device(blist_device_all, strdup(".*"), strdup(".*"), ++ ORIGIN_CONFIG)) ++ return -1; ++ ++ blist_wwid_xyzzy = vector_alloc(); ++ if (!blist_wwid_xyzzy || ++ store_ble(blist_wwid_xyzzy, strdup("xyzzy"), ORIGIN_CONFIG)) ++ return -1; ++ ++ blist_protocol_fcp = vector_alloc(); ++ if (!blist_protocol_fcp || ++ store_ble(blist_protocol_fcp, strdup("scsi:fcp"), ORIGIN_CONFIG)) ++ return -1; ++ ++ blist_property_wwn = vector_alloc(); ++ if (!blist_property_wwn || ++ store_ble(blist_property_wwn, strdup("ID_WWN"), ORIGIN_CONFIG)) ++ return -1; ++ ++ return 0; ++} ++ ++static int teardown(void **state) ++{ ++ free_blacklist(blist_devnode_sdb); ++ free_blacklist(blist_all); ++ free_blacklist_device(blist_device_foo_bar); ++ free_blacklist_device(blist_device_all); ++ free_blacklist(blist_wwid_xyzzy); ++ free_blacklist(blist_protocol_fcp); ++ free_blacklist(blist_property_wwn); ++ return 0; ++} ++ ++static int reset_blists(void **state) ++{ ++ conf.blist_devnode = NULL; ++ conf.blist_wwid = NULL; ++ conf.blist_property = NULL; ++ conf.blist_protocol = NULL; ++ conf.blist_device = NULL; ++ conf.elist_devnode = NULL; ++ conf.elist_wwid = NULL; ++ conf.elist_property = NULL; ++ conf.elist_protocol = NULL; ++ conf.elist_device = NULL; ++ return 0; ++} ++ ++static void test_devnode_blacklist(void **state) ++{ ++ expect_condlog(3, "sdb: device node name blacklisted\n"); ++ assert_int_equal(filter_devnode(blist_devnode_sdb, NULL, "sdb"), ++ MATCH_DEVNODE_BLIST); ++} ++ ++static void test_devnode_whitelist(void **state) ++{ ++ expect_condlog(3, "sdb: device node name whitelisted\n"); ++ assert_int_equal(filter_devnode(blist_all, blist_devnode_sdb, "sdb"), ++ MATCH_DEVNODE_BLIST_EXCEPT); ++ expect_condlog(3, "sdc: device node name blacklisted\n"); ++ assert_int_equal(filter_devnode(blist_all, blist_devnode_sdb, "sdc"), ++ MATCH_DEVNODE_BLIST); ++} ++ ++static void test_devnode_missing(void **state) ++{ ++ assert_int_equal(filter_devnode(blist_devnode_sdb, NULL, "sdc"), ++ MATCH_NOTHING); ++} ++ ++static void test_device_blacklist(void **state) ++{ ++ expect_condlog(3, "sdb: (foo:bar) vendor/product blacklisted\n"); ++ assert_int_equal(filter_device(blist_device_foo_bar, NULL, "foo", ++ "bar", "sdb"), ++ MATCH_DEVICE_BLIST); ++} ++ ++static void test_device_whitelist(void **state) ++{ ++ expect_condlog(3, "sdb: (foo:bar) vendor/product whitelisted\n"); ++ assert_int_equal(filter_device(blist_device_all, blist_device_foo_bar, ++ "foo", "bar", "sdb"), ++ MATCH_DEVICE_BLIST_EXCEPT); ++ expect_condlog(3, "sdb: (foo:baz) vendor/product blacklisted\n"); ++ assert_int_equal(filter_device(blist_device_all, blist_device_foo_bar, ++ "foo", "baz", "sdb"), ++ MATCH_DEVICE_BLIST); ++} ++ ++static void test_device_missing(void **state) ++{ ++ assert_int_equal(filter_device(blist_device_foo_bar, NULL, "foo", ++ "baz", "sdb"), ++ MATCH_NOTHING); ++} ++ ++static void test_wwid_blacklist(void **state) ++{ ++ expect_condlog(3, "sdb: wwid xyzzy blacklisted\n"); ++ assert_int_equal(filter_wwid(blist_wwid_xyzzy, NULL, "xyzzy", "sdb"), ++ MATCH_WWID_BLIST); ++} ++ ++static void test_wwid_whitelist(void **state) ++{ ++ expect_condlog(3, "sdb: wwid xyzzy whitelisted\n"); ++ assert_int_equal(filter_wwid(blist_all, blist_wwid_xyzzy, ++ "xyzzy", "sdb"), ++ MATCH_WWID_BLIST_EXCEPT); ++ expect_condlog(3, "sdb: wwid plugh blacklisted\n"); ++ assert_int_equal(filter_wwid(blist_all, blist_wwid_xyzzy, ++ "plugh", "sdb"), ++ MATCH_WWID_BLIST); ++} ++ ++static void test_wwid_missing(void **state) ++{ ++ assert_int_equal(filter_wwid(blist_wwid_xyzzy, NULL, "plugh", "sdb"), ++ MATCH_NOTHING); ++} ++ ++static void test_protocol_blacklist(void **state) ++{ ++ struct path pp = { .dev = "sdb", .bus = SYSFS_BUS_SCSI, ++ .sg_id.proto_id = SCSI_PROTOCOL_FCP }; ++ expect_condlog(3, "sdb: protocol scsi:fcp blacklisted\n"); ++ assert_int_equal(filter_protocol(blist_protocol_fcp, NULL, &pp), ++ MATCH_PROTOCOL_BLIST); ++} ++ ++static void test_protocol_whitelist(void **state) ++{ ++ struct path pp1 = { .dev = "sdb", .bus = SYSFS_BUS_SCSI, ++ .sg_id.proto_id = SCSI_PROTOCOL_FCP }; ++ struct path pp2 = { .dev = "sdb", .bus = SYSFS_BUS_SCSI, ++ .sg_id.proto_id = SCSI_PROTOCOL_ISCSI }; ++ expect_condlog(3, "sdb: protocol scsi:fcp whitelisted\n"); ++ assert_int_equal(filter_protocol(blist_all, blist_protocol_fcp, &pp1), ++ MATCH_PROTOCOL_BLIST_EXCEPT); ++ expect_condlog(3, "sdb: protocol scsi:iscsi blacklisted\n"); ++ assert_int_equal(filter_protocol(blist_all, blist_protocol_fcp, &pp2), ++ MATCH_PROTOCOL_BLIST); ++} ++ ++static void test_protocol_missing(void **state) ++{ ++ struct path pp = { .dev = "sdb", .bus = SYSFS_BUS_SCSI, ++ .sg_id.proto_id = SCSI_PROTOCOL_ISCSI }; ++ assert_int_equal(filter_protocol(blist_protocol_fcp, NULL, &pp), ++ MATCH_NOTHING); ++} ++ ++static void test_property_blacklist(void **state) ++{ ++ static struct udev_device udev = { "sdb", { "ID_FOO", "ID_WWN", "ID_BAR", NULL } }; ++ conf.blist_property = blist_property_wwn; ++ expect_condlog(3, "sdb: udev property ID_WWN blacklisted\n"); ++ assert_int_equal(filter_property(&conf, &udev), MATCH_PROPERTY_BLIST); ++} ++ ++/* the property check works different in that you check all the property ++ * names, so setting a blacklist value will blacklist the device if any ++ * of the property on the blacklist are found before the property names ++ * in the whitelist. This might be worth changing. although it would ++ * force multipath to go through the properties twice */ ++static void test_property_whitelist(void **state) ++{ ++ static struct udev_device udev = { "sdb", { "ID_FOO", "ID_WWN", "ID_BAR", NULL } }; ++ conf.elist_property = blist_property_wwn; ++ expect_condlog(3, "sdb: udev property ID_WWN whitelisted\n"); ++ assert_int_equal(filter_property(&conf, &udev), ++ MATCH_PROPERTY_BLIST_EXCEPT); ++} ++ ++static void test_property_missing(void **state) ++{ ++ static struct udev_device udev = { "sdb", { "ID_FOO", "ID_BAZ", "ID_BAR", NULL } }; ++ conf.blist_property = blist_property_wwn; ++ expect_condlog(3, "sdb: blacklisted, udev property missing\n"); ++ assert_int_equal(filter_property(&conf, &udev), ++ MATCH_PROPERTY_BLIST_MISSING); ++} ++ ++struct udev_device test_udev = { "sdb", { "ID_FOO", "ID_WWN", "ID_BAR", NULL } }; ++ ++struct path test_pp = { .dev = "sdb", .bus = SYSFS_BUS_SCSI, .udev = &test_udev, ++ .sg_id.proto_id = SCSI_PROTOCOL_FCP, .vendor_id = "foo", ++ .product_id = "bar", .wwid = "xyzzy" }; ++ ++static void test_filter_path_property(void **state) ++{ ++ conf.blist_property = blist_property_wwn; ++ expect_condlog(3, "sdb: udev property ID_WWN blacklisted\n"); ++ assert_int_equal(filter_path(&conf, &test_pp), MATCH_PROPERTY_BLIST); ++} ++ ++static void test_filter_path_devnode(void **state) ++{ ++ /* always must include property elist, to avoid "missing property" ++ * blacklisting */ ++ conf.elist_property = blist_property_wwn; ++ conf.blist_devnode = blist_devnode_sdb; ++ expect_condlog(3, "sdb: udev property ID_WWN whitelisted\n"); ++ expect_condlog(3, "sdb: device node name blacklisted\n"); ++ assert_int_equal(filter_path(&conf, &test_pp), MATCH_DEVNODE_BLIST); ++} ++ ++static void test_filter_path_device(void **state) ++{ ++ /* always must include property elist, to avoid "missing property" ++ * blacklisting */ ++ conf.elist_property = blist_property_wwn; ++ conf.blist_device = blist_device_foo_bar; ++ expect_condlog(3, "sdb: udev property ID_WWN whitelisted\n"); ++ expect_condlog(3, "sdb: (foo:bar) vendor/product blacklisted\n"); ++ assert_int_equal(filter_path(&conf, &test_pp), MATCH_DEVICE_BLIST); ++} ++ ++static void test_filter_path_protocol(void **state) ++{ ++ conf.elist_property = blist_property_wwn; ++ conf.blist_protocol = blist_protocol_fcp; ++ expect_condlog(3, "sdb: udev property ID_WWN whitelisted\n"); ++ expect_condlog(3, "sdb: protocol scsi:fcp blacklisted\n"); ++ assert_int_equal(filter_path(&conf, &test_pp), MATCH_PROTOCOL_BLIST); ++} ++ ++static void test_filter_path_wwid(void **state) ++{ ++ conf.elist_property = blist_property_wwn; ++ conf.blist_wwid = blist_wwid_xyzzy; ++ expect_condlog(3, "sdb: udev property ID_WWN whitelisted\n"); ++ expect_condlog(3, "sdb: wwid xyzzy blacklisted\n"); ++ assert_int_equal(filter_path(&conf, &test_pp), MATCH_WWID_BLIST); ++} ++ ++struct udev_device miss_udev = { "sdb", { "ID_FOO", "ID_BAZ", "ID_BAR", NULL } }; ++ ++struct path miss1_pp = { .dev = "sdc", .bus = SYSFS_BUS_SCSI, ++ .udev = &miss_udev, ++ .sg_id.proto_id = SCSI_PROTOCOL_ISCSI, ++ .vendor_id = "foo", .product_id = "baz", ++ .wwid = "plugh" }; ++ ++struct path miss2_pp = { .dev = "sdc", .bus = SYSFS_BUS_SCSI, ++ .udev = &test_udev, ++ .sg_id.proto_id = SCSI_PROTOCOL_ISCSI, ++ .vendor_id = "foo", .product_id = "baz", ++ .wwid = "plugh" }; ++ ++static void test_filter_path_missing1(void **state) ++{ ++ conf.blist_property = blist_property_wwn; ++ conf.blist_devnode = blist_devnode_sdb; ++ conf.blist_device = blist_device_foo_bar; ++ conf.blist_protocol = blist_protocol_fcp; ++ conf.blist_wwid = blist_wwid_xyzzy; ++ expect_condlog(3, "sdb: blacklisted, udev property missing\n"); ++ assert_int_equal(filter_path(&conf, &miss1_pp), ++ MATCH_PROPERTY_BLIST_MISSING); ++} ++ ++/* This one matches the property whitelist, to test the other missing ++ * functions */ ++static void test_filter_path_missing2(void **state) ++{ ++ conf.elist_property = blist_property_wwn; ++ conf.blist_devnode = blist_devnode_sdb; ++ conf.blist_device = blist_device_foo_bar; ++ conf.blist_protocol = blist_protocol_fcp; ++ conf.blist_wwid = blist_wwid_xyzzy; ++ expect_condlog(3, "sdb: udev property ID_WWN whitelisted\n"); ++ assert_int_equal(filter_path(&conf, &miss2_pp), ++ MATCH_NOTHING); ++} ++ ++static void test_filter_path_whitelist(void **state) ++{ ++ conf.elist_property = blist_property_wwn; ++ conf.elist_devnode = blist_devnode_sdb; ++ conf.elist_device = blist_device_foo_bar; ++ conf.elist_protocol = blist_protocol_fcp; ++ conf.elist_wwid = blist_wwid_xyzzy; ++ expect_condlog(3, "sdb: udev property ID_WWN whitelisted\n"); ++ expect_condlog(3, "sdb: device node name whitelisted\n"); ++ expect_condlog(3, "sdb: (foo:bar) vendor/product whitelisted\n"); ++ expect_condlog(3, "sdb: protocol scsi:fcp whitelisted\n"); ++ expect_condlog(3, "sdb: wwid xyzzy whitelisted\n"); ++ assert_int_equal(filter_path(&conf, &test_pp), ++ MATCH_WWID_BLIST_EXCEPT); ++} ++ ++static void test_filter_path_whitelist_property(void **state) ++{ ++ conf.blist_property = blist_property_wwn; ++ conf.elist_devnode = blist_devnode_sdb; ++ conf.elist_device = blist_device_foo_bar; ++ conf.elist_protocol = blist_protocol_fcp; ++ conf.elist_wwid = blist_wwid_xyzzy; ++ expect_condlog(3, "sdb: udev property ID_WWN blacklisted\n"); ++ assert_int_equal(filter_path(&conf, &test_pp), MATCH_PROPERTY_BLIST); ++} ++ ++static void test_filter_path_whitelist_devnode(void **state) ++{ ++ conf.elist_property = blist_property_wwn; ++ conf.blist_devnode = blist_devnode_sdb; ++ conf.elist_device = blist_device_foo_bar; ++ conf.elist_protocol = blist_protocol_fcp; ++ conf.elist_wwid = blist_wwid_xyzzy; ++ expect_condlog(3, "sdb: udev property ID_WWN whitelisted\n"); ++ expect_condlog(3, "sdb: device node name blacklisted\n"); ++ assert_int_equal(filter_path(&conf, &test_pp), MATCH_DEVNODE_BLIST); ++} ++ ++static void test_filter_path_whitelist_device(void **state) ++{ ++ conf.elist_property = blist_property_wwn; ++ conf.elist_devnode = blist_devnode_sdb; ++ conf.blist_device = blist_device_foo_bar; ++ conf.elist_protocol = blist_protocol_fcp; ++ conf.elist_wwid = blist_wwid_xyzzy; ++ expect_condlog(3, "sdb: udev property ID_WWN whitelisted\n"); ++ expect_condlog(3, "sdb: device node name whitelisted\n"); ++ expect_condlog(3, "sdb: (foo:bar) vendor/product blacklisted\n"); ++ assert_int_equal(filter_path(&conf, &test_pp), MATCH_DEVICE_BLIST); ++} ++ ++static void test_filter_path_whitelist_protocol(void **state) ++{ ++ conf.elist_property = blist_property_wwn; ++ conf.elist_devnode = blist_devnode_sdb; ++ conf.elist_device = blist_device_foo_bar; ++ conf.blist_protocol = blist_protocol_fcp; ++ conf.elist_wwid = blist_wwid_xyzzy; ++ expect_condlog(3, "sdb: udev property ID_WWN whitelisted\n"); ++ expect_condlog(3, "sdb: device node name whitelisted\n"); ++ expect_condlog(3, "sdb: (foo:bar) vendor/product whitelisted\n"); ++ expect_condlog(3, "sdb: protocol scsi:fcp blacklisted\n"); ++ assert_int_equal(filter_path(&conf, &test_pp), MATCH_PROTOCOL_BLIST); ++} ++ ++static void test_filter_path_whitelist_wwid(void **state) ++{ ++ conf.elist_property = blist_property_wwn; ++ conf.elist_devnode = blist_devnode_sdb; ++ conf.elist_device = blist_device_foo_bar; ++ conf.elist_protocol = blist_protocol_fcp; ++ conf.blist_wwid = blist_wwid_xyzzy; ++ expect_condlog(3, "sdb: udev property ID_WWN whitelisted\n"); ++ expect_condlog(3, "sdb: device node name whitelisted\n"); ++ expect_condlog(3, "sdb: (foo:bar) vendor/product whitelisted\n"); ++ expect_condlog(3, "sdb: protocol scsi:fcp whitelisted\n"); ++ expect_condlog(3, "sdb: wwid xyzzy blacklisted\n"); ++ assert_int_equal(filter_path(&conf, &test_pp), MATCH_WWID_BLIST); ++} ++ ++#define test_and_reset(x) cmocka_unit_test_teardown((x), reset_blists) ++ ++int test_blacklist(void) ++{ ++ const struct CMUnitTest tests[] = { ++ cmocka_unit_test(test_devnode_blacklist), ++ cmocka_unit_test(test_devnode_whitelist), ++ cmocka_unit_test(test_devnode_missing), ++ cmocka_unit_test(test_device_blacklist), ++ cmocka_unit_test(test_device_whitelist), ++ cmocka_unit_test(test_device_missing), ++ cmocka_unit_test(test_wwid_blacklist), ++ cmocka_unit_test(test_wwid_whitelist), ++ cmocka_unit_test(test_wwid_missing), ++ cmocka_unit_test(test_protocol_blacklist), ++ cmocka_unit_test(test_protocol_whitelist), ++ cmocka_unit_test(test_protocol_missing), ++ test_and_reset(test_property_blacklist), ++ test_and_reset(test_property_whitelist), ++ test_and_reset(test_property_missing), ++ test_and_reset(test_filter_path_property), ++ test_and_reset(test_filter_path_devnode), ++ test_and_reset(test_filter_path_device), ++ test_and_reset(test_filter_path_protocol), ++ test_and_reset(test_filter_path_wwid), ++ test_and_reset(test_filter_path_missing1), ++ test_and_reset(test_filter_path_missing2), ++ test_and_reset(test_filter_path_whitelist), ++ test_and_reset(test_filter_path_whitelist_property), ++ test_and_reset(test_filter_path_whitelist_devnode), ++ test_and_reset(test_filter_path_whitelist_device), ++ test_and_reset(test_filter_path_whitelist_protocol), ++ test_and_reset(test_filter_path_whitelist_wwid), ++ }; ++ return cmocka_run_group_tests(tests, setup, teardown); ++} ++ ++int main(void) ++{ ++ int ret = 0; ++ ret += test_blacklist(); ++ return ret; ++} +-- +2.7.4 + diff --git a/0010-mpathpersist-add-missing-param-rk-usage-info.patch b/0010-mpathpersist-add-missing-param-rk-usage-info.patch new file mode 100644 index 0000000..e05d9e6 --- /dev/null +++ b/0010-mpathpersist-add-missing-param-rk-usage-info.patch @@ -0,0 +1,25 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +Date: Mon, 16 Jul 2018 16:43:57 -0500 +Subject: [PATCH] mpathpersist: add missing --param-rk usage info + +Signed-off-by: Benjamin Marzinski +--- + mpathpersist/main.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/mpathpersist/main.c b/mpathpersist/main.c +index 99151fe..0e4d3f2 100644 +--- a/mpathpersist/main.c ++++ b/mpathpersist/main.c +@@ -705,6 +705,7 @@ static void usage(void) + " --param-alltgpt|-Y PR Out parameter 'ALL_TG_PT\n" + " --param-aptpl|-Z PR Out parameter 'APTPL'\n" + " --read-keys|-k PR In: Read Keys\n" ++ " --param-rk=RK|-K RK PR Out parameter reservation key\n" + " --param-sark=SARK|-S SARK PR Out parameter service " + "action\n" + " reservation key (SARK is in " +-- +2.7.4 + diff --git a/0011-change-order-of-multipath.rules.patch b/0011-change-order-of-multipath.rules.patch new file mode 100644 index 0000000..90de0e7 --- /dev/null +++ b/0011-change-order-of-multipath.rules.patch @@ -0,0 +1,39 @@ +From 4340aca696857c1077b00ff6bdc0454a07929aad Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +Date: Fri, 15 May 2015 18:14:09 -0500 +Subject: [PATCH] change order of multipath.rules + +At least for RedHat, the rule that calls scsi_id is +60-persistent-storage.rules, so the multipath rule needs to come +after this. + +Signed-off-by: Benjamin Marzinski +--- + multipath/Makefile | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/multipath/Makefile b/multipath/Makefile +index 0828a8f..b9bbb3c 100644 +--- a/multipath/Makefile ++++ b/multipath/Makefile +@@ -24,7 +24,7 @@ install: + $(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir)/ + $(INSTALL_PROGRAM) -d $(DESTDIR)$(udevrulesdir) + $(INSTALL_PROGRAM) -m 644 11-dm-mpath.rules $(DESTDIR)$(udevrulesdir) +- $(INSTALL_PROGRAM) -m 644 $(EXEC).rules $(DESTDIR)$(libudevdir)/rules.d/56-multipath.rules ++ $(INSTALL_PROGRAM) -m 644 $(EXEC).rules $(DESTDIR)$(libudevdir)/rules.d/62-multipath.rules + $(INSTALL_PROGRAM) -d $(DESTDIR)$(man8dir) + $(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(man8dir) + $(INSTALL_PROGRAM) -d $(DESTDIR)$(man5dir) +@@ -33,7 +33,7 @@ install: + uninstall: + $(RM) $(DESTDIR)$(bindir)/$(EXEC) + $(RM) $(DESTDIR)$(udevrulesdir)/11-dm-mpath.rules +- $(RM) $(DESTDIR)$(libudevdir)/rules.d/56-multipath.rules ++ $(RM) $(DESTDIR)$(libudevdir)/rules.d/62-multipath.rules + $(RM) $(DESTDIR)$(man8dir)/$(EXEC).8.gz + $(RM) $(DESTDIR)$(man5dir)/$(EXEC).conf.5.gz + +-- +1.8.3.1 + diff --git a/0012-RH-Remove-the-property-blacklist-exception-builtin.patch b/0012-RH-Remove-the-property-blacklist-exception-builtin.patch new file mode 100644 index 0000000..87eba36 --- /dev/null +++ b/0012-RH-Remove-the-property-blacklist-exception-builtin.patch @@ -0,0 +1,80 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +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 +--- + 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 + diff --git a/6000-libmultipath-fix-set_int-error-path.patch b/6000-libmultipath-fix-set_int-error-path.patch new file mode 100644 index 0000000..0cdcfbd --- /dev/null +++ b/6000-libmultipath-fix-set_int-error-path.patch @@ -0,0 +1,34 @@ +From 8f9ac30dcb144d4ce79f88e8a01fba0968da3a07 Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +Date: Tue, 9 Oct 2018 18:03:03 -0500 +Subject: [PATCH] libmultipath: fix set_int error path + +set_int() wasn't checking if the line actually had a value before +converting it to an integer. Found by coverity. Also, it should +be using set_value(). + +Reviewed-by: Martin Wilck +Signed-off-by: Benjamin Marzinski +--- + libmultipath/dict.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/libmultipath/dict.c b/libmultipath/dict.c +index 32524d5f..bf4701ee 100644 +--- a/libmultipath/dict.c ++++ b/libmultipath/dict.c +@@ -33,7 +33,10 @@ set_int(vector strvec, void *ptr) + int *int_ptr = (int *)ptr; + char * buff; + +- buff = VECTOR_SLOT(strvec, 1); ++ buff = set_value(strvec); ++ if (!buff) ++ return 1; ++ + *int_ptr = atoi(buff); + + return 0; +-- +2.11.0 + diff --git a/6001-libmultipath-free-allocated-value-in-set_int.patch b/6001-libmultipath-free-allocated-value-in-set_int.patch new file mode 100644 index 0000000..5dfa3c7 --- /dev/null +++ b/6001-libmultipath-free-allocated-value-in-set_int.patch @@ -0,0 +1,28 @@ +From 5e71f6eb17cbb119f0f995f234bf1887a4f77058 Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +Date: Thu, 11 Oct 2018 15:43:47 -0500 +Subject: [PATCH] libmultipath: free allocated value in set_int + +set_int() needs to free the buffer it got back from set_value() + +Fixes: 8f9ac30d ("libmultipath: fix set_int error path") +Signed-off-by: Benjamin Marzinski +--- + libmultipath/dict.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/libmultipath/dict.c b/libmultipath/dict.c +index bf4701ee..c3f5a6e6 100644 +--- a/libmultipath/dict.c ++++ b/libmultipath/dict.c +@@ -39,6 +39,7 @@ set_int(vector strvec, void *ptr) + + *int_ptr = atoi(buff); + ++ FREE(buff); + return 0; + } + +-- +2.11.0 + diff --git a/6002-libmultipath-fix-memory-issue-in-path_latency-prio.patch b/6002-libmultipath-fix-memory-issue-in-path_latency-prio.patch new file mode 100644 index 0000000..e490a8a --- /dev/null +++ b/6002-libmultipath-fix-memory-issue-in-path_latency-prio.patch @@ -0,0 +1,32 @@ +From c3b739527258dae7ebe4b5d083a33ce527675082 Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +Date: Tue, 9 Oct 2018 18:03:07 -0500 +Subject: [PATCH] libmultipath: fix memory issue in path_latency prio + +The path_latency prioriziter was assuming that prepare_directio_read() +always succeeds. However, it doesn't, and when it fails, the prioritizer +used buf without it pointing to alloced memory. Found by coverity. + +Reviewed-by: Martin Wilck +Signed-off-by: Benjamin Marzinski +--- + libmultipath/prioritizers/path_latency.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/libmultipath/prioritizers/path_latency.c b/libmultipath/prioritizers/path_latency.c +index 765265c0..eeee01e1 100644 +--- a/libmultipath/prioritizers/path_latency.c ++++ b/libmultipath/prioritizers/path_latency.c +@@ -237,7 +237,8 @@ int getprio(struct path *pp, char *args, unsigned int timeout) + lg_maxavglatency = log(MAX_AVG_LATENCY) / lg_base; + lg_minavglatency = log(MIN_AVG_LATENCY) / lg_base; + +- prepare_directio_read(pp->fd, &blksize, &buf, &restore_flags); ++ if (prepare_directio_read(pp->fd, &blksize, &buf, &restore_flags) < 0) ++ return PRIO_UNDEF; + + temp = io_num; + while (temp-- > 0) { +-- +2.11.0 + diff --git a/6003-libmultipath-fix-null-dereference-int-alloc_path_group.patch b/6003-libmultipath-fix-null-dereference-int-alloc_path_group.patch new file mode 100644 index 0000000..50e5ac1 --- /dev/null +++ b/6003-libmultipath-fix-null-dereference-int-alloc_path_group.patch @@ -0,0 +1,31 @@ +From 156b75082c7c5d5aa832e500cf4175c3f943fa22 Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +Date: Tue, 9 Oct 2018 18:03:08 -0500 +Subject: [PATCH] libmultipath: fix null dereference int alloc_path_group + +If all_pathgroup failed to allocate a vector for pgp->paths, instead of +failing after it freed pgp, it would set pgp to NULL and then +dereference it. This patch fixes that. Found by coverity. + +Reviewed-by: Martin Wilck +Signed-off-by: Benjamin Marzinski +--- + libmultipath/structs.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libmultipath/structs.c b/libmultipath/structs.c +index ae847d61..caa178a6 100644 +--- a/libmultipath/structs.c ++++ b/libmultipath/structs.c +@@ -165,7 +165,7 @@ alloc_pathgroup (void) + + if (!pgp->paths) { + FREE(pgp); +- pgp = NULL; ++ return NULL; + } + + dm_pathgroup_to_gen(pgp)->ops = &dm_gen_pathgroup_ops; +-- +2.11.0 + diff --git a/6004-multipath-fix-max-array-size-in-print_cmd_valid.patch b/6004-multipath-fix-max-array-size-in-print_cmd_valid.patch new file mode 100644 index 0000000..4f08d48 --- /dev/null +++ b/6004-multipath-fix-max-array-size-in-print_cmd_valid.patch @@ -0,0 +1,31 @@ +From b25493d8fa13c2d7a346e0b18ad4756aa733ff8d Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +Date: Tue, 9 Oct 2018 18:03:10 -0500 +Subject: [PATCH] multipath: fix max array size in print_cmd_valid + +The code is attempting to verify that 0 <= k < 3 +However, sizeof(val) is 12, assuming 4 byte integers. The check needs to +take integer size into account. Found by coverity. + +Reviewed-by: Martin Wilck +Signed-off-by: Benjamin Marzinski +--- + multipath/main.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/multipath/main.c b/multipath/main.c +index fc5bf169..d5aad952 100644 +--- a/multipath/main.c ++++ b/multipath/main.c +@@ -482,7 +482,7 @@ static int print_cmd_valid(int k, const vector pathvec, + struct timespec until; + struct path *pp; + +- if (k < 0 || k >= sizeof(vals)) ++ if (k < 0 || k >= (sizeof(vals) / sizeof(int))) + return 1; + + if (k == 2) { +-- +2.11.0 + diff --git a/6005-multipathd-minor-fixes.patch b/6005-multipathd-minor-fixes.patch new file mode 100644 index 0000000..844810e --- /dev/null +++ b/6005-multipathd-minor-fixes.patch @@ -0,0 +1,41 @@ +From b31f8f5a21a90fb9087c02e00b6b69934a5bbdd5 Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +Date: Tue, 9 Oct 2018 18:03:12 -0500 +Subject: [PATCH] multipathd: minor fixes + +In update_multipath(), conf is set again in a couple of lines, and +nothing uses it before then, so there's no point in setting it twice. +Also, in ev_remove_path(), strncpy() could end up unterminated, so +use strlcpy() instead. + +Reviewed-by: Martin Wilck +Signed-off-by: Benjamin Marzinski +--- + multipathd/main.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/multipathd/main.c b/multipathd/main.c +index ba796ab1..cd963043 100644 +--- a/multipathd/main.c ++++ b/multipathd/main.c +@@ -429,7 +429,7 @@ int update_multipath (struct vectors *vecs, char *mapname, int reset) + continue; + + if (pp->state != PATH_DOWN) { +- struct config *conf = get_multipath_config(); ++ struct config *conf; + int oldstate = pp->state; + int checkint; + +@@ -1097,7 +1097,7 @@ ev_remove_path (struct path *pp, struct vectors * vecs, int need_do_map) + /* + * flush_map will fail if the device is open + */ +- strncpy(alias, mpp->alias, WWID_SIZE); ++ strlcpy(alias, mpp->alias, WWID_SIZE); + if (mpp->flush_on_last_del == FLUSH_ENABLED) { + condlog(2, "%s Last path deleted, disabling queueing", mpp->alias); + mpp->retry_tick = 0; +-- +2.11.0 + diff --git a/6006-multipathd-fix-memory-leak-on-error-in-configure.patch b/6006-multipathd-fix-memory-leak-on-error-in-configure.patch new file mode 100644 index 0000000..cb94629 --- /dev/null +++ b/6006-multipathd-fix-memory-leak-on-error-in-configure.patch @@ -0,0 +1,68 @@ +From 3b8da487d534eb49c8c59d1a9c2d6199c0716572 Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +Date: Tue, 9 Oct 2018 18:03:14 -0500 +Subject: [PATCH] multipathd: fix memory leak on error in configure + +If configure fails after allocing mpvec, it must free it. Found by +coverity. + +Reviewed-by: Martin Wilck +Signed-off-by: Benjamin Marzinski +--- + multipathd/main.c | 12 ++++++++---- + 1 file changed, 8 insertions(+), 4 deletions(-) + +diff --git a/multipathd/main.c b/multipathd/main.c +index 463b1b82..04dce04c 100644 +--- a/multipathd/main.c ++++ b/multipathd/main.c +@@ -2278,7 +2278,7 @@ configure (struct vectors * vecs) + ret = path_discovery(vecs->pathvec, DI_ALL); + if (ret < 0) { + condlog(0, "configure failed at path discovery"); +- return 1; ++ goto fail; + } + + vector_foreach_slot (vecs->pathvec, pp, i){ +@@ -2295,7 +2295,7 @@ configure (struct vectors * vecs) + } + if (map_discovery(vecs)) { + condlog(0, "configure failed at map discovery"); +- return 1; ++ goto fail; + } + + /* +@@ -2309,7 +2309,7 @@ configure (struct vectors * vecs) + force_reload = FORCE_RELOAD_YES; + if (ret) { + condlog(0, "configure failed while coalescing paths"); +- return 1; ++ goto fail; + } + + /* +@@ -2318,7 +2318,7 @@ configure (struct vectors * vecs) + */ + if (coalesce_maps(vecs, mpvec)) { + condlog(0, "configure failed while coalescing maps"); +- return 1; ++ goto fail; + } + + dm_lib_release(); +@@ -2354,6 +2354,10 @@ configure (struct vectors * vecs) + i--; + } + return 0; ++ ++fail: ++ vector_free(mpvec); ++ return 1; + } + + int +-- +2.11.0 + diff --git a/6007-multipathd-check-for-NULL-udevice-in-cli_add_path.patch b/6007-multipathd-check-for-NULL-udevice-in-cli_add_path.patch new file mode 100644 index 0000000..801cbae --- /dev/null +++ b/6007-multipathd-check-for-NULL-udevice-in-cli_add_path.patch @@ -0,0 +1,32 @@ +From e7a3324274578d63cdef23bb08410df20e0de862 Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +Date: Wed, 10 Oct 2018 13:01:09 -0500 +Subject: [PATCH] multipathd: check for NULL udevice in cli_add_path + +If cli_add_path can't get a udevice for the path, it should fail +immediately, instead of continuing with a NULL udevice, since it will +fail in store_pathinfo() anyway. + +Signed-off-by: Benjamin Marzinski +--- + multipathd/cli_handlers.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/multipathd/cli_handlers.c b/multipathd/cli_handlers.c +index bb164726..75000807 100644 +--- a/multipathd/cli_handlers.c ++++ b/multipathd/cli_handlers.c +@@ -720,6 +720,10 @@ cli_add_path (void * v, char ** reply, int * len, void * data) + udevice = udev_device_new_from_subsystem_sysname(udev, + "block", + param); ++ if (!udevice) { ++ condlog(0, "%s: can't find path", param); ++ return 1; ++ } + conf = get_multipath_config(); + pthread_cleanup_push(put_multipath_config, conf); + r = store_pathinfo(vecs->pathvec, conf, +-- +2.11.0 + diff --git a/6008-kpartx-fix-apparent-out-of-bounds-access.patch b/6008-kpartx-fix-apparent-out-of-bounds-access.patch new file mode 100644 index 0000000..f0f5db9 --- /dev/null +++ b/6008-kpartx-fix-apparent-out-of-bounds-access.patch @@ -0,0 +1,28 @@ +From 2578838d077ecd7f4555e90df019053e7131e151 Mon Sep 17 00:00:00 2001 +From: Martin Wilck +Date: Tue, 8 Jan 2019 23:54:00 +0100 +Subject: [PATCH] kpartx(coverity): fix apparent out-of-bounds access + +This was a false positive. + +Signed-off-by: Martin Wilck +--- + kpartx/dasd.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/kpartx/dasd.c b/kpartx/dasd.c +index fb358add..61b609a5 100644 +--- a/kpartx/dasd.c ++++ b/kpartx/dasd.c +@@ -190,7 +190,7 @@ read_dasd_pt(int fd, struct slice all, struct slice *sp, int ns) + memcpy (&vlabel, data, sizeof(vlabel)); + else { + bzero(&vlabel,4); +- memcpy (&vlabel.vollbl, data, sizeof(vlabel) - 4); ++ memcpy ((char *)&vlabel + 4, data, sizeof(vlabel) - 4); + } + vtoc_ebcdic_dec(vlabel.vollbl, type, 4); + +-- +2.11.0 + diff --git a/6009-libmultipath-fix-apparent-overflow.patch b/6009-libmultipath-fix-apparent-overflow.patch new file mode 100644 index 0000000..921cea9 --- /dev/null +++ b/6009-libmultipath-fix-apparent-overflow.patch @@ -0,0 +1,28 @@ +From 7d30130a5d53629e7c3420aa58018c75fa9dbeef Mon Sep 17 00:00:00 2001 +From: Martin Wilck +Date: Tue, 8 Jan 2019 23:54:02 +0100 +Subject: [PATCH] libmultipath(coverity): fix apparent overflow + +"preferred_path" contains always "0" or "1". + +Signed-off-by: Martin Wilck +--- + libmultipath/discovery.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libmultipath/discovery.c b/libmultipath/discovery.c +index 7f983a63..3fd79a36 100644 +--- a/libmultipath/discovery.c ++++ b/libmultipath/discovery.c +@@ -520,7 +520,7 @@ sysfs_get_asymmetric_access_state(struct path *pp, char *buff, int buflen) + /* Parse error, ignore */ + return 0; + } +- return preferred; ++ return !!preferred; + } + + static void +-- +2.11.0 + diff --git a/6010-libmultipath-fix-int-overflow-in-sysfs_set_scsi_tmo.patch b/6010-libmultipath-fix-int-overflow-in-sysfs_set_scsi_tmo.patch new file mode 100644 index 0000000..4284271 --- /dev/null +++ b/6010-libmultipath-fix-int-overflow-in-sysfs_set_scsi_tmo.patch @@ -0,0 +1,27 @@ +From 3044fc0bd953faf71bfa6ebd98f2084f6ae1772b Mon Sep 17 00:00:00 2001 +From: Martin Wilck +Date: Tue, 8 Jan 2019 23:54:04 +0100 +Subject: [PATCH] libmultipath(coverity): fix int overflow in + sysfs_set_scsi_tmo + +Signed-off-by: Martin Wilck +--- + libmultipath/discovery.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libmultipath/discovery.c b/libmultipath/discovery.c +index 3fd79a36..1748eebb 100644 +--- a/libmultipath/discovery.c ++++ b/libmultipath/discovery.c +@@ -711,7 +711,7 @@ sysfs_set_scsi_tmo (struct multipath *mpp, int checkint) + int dev_loss_tmo = mpp->dev_loss; + + if (mpp->no_path_retry > 0) { +- uint64_t no_path_retry_tmo = mpp->no_path_retry * checkint; ++ uint64_t no_path_retry_tmo = (uint64_t)mpp->no_path_retry * checkint; + + if (no_path_retry_tmo > MAX_DEV_LOSS_TMO) + no_path_retry_tmo = MAX_DEV_LOSS_TMO; +-- +2.11.0 + diff --git a/6011-libmultipath-fix-enum-misuse-for-find_multipaths.patch b/6011-libmultipath-fix-enum-misuse-for-find_multipaths.patch new file mode 100644 index 0000000..05c3b2c --- /dev/null +++ b/6011-libmultipath-fix-enum-misuse-for-find_multipaths.patch @@ -0,0 +1,26 @@ +From fb87e6e9d5778c9b2874496ff6e44c0001a3c228 Mon Sep 17 00:00:00 2001 +From: Martin Wilck +Date: Tue, 8 Jan 2019 23:54:05 +0100 +Subject: [PATCH] libmultipath(coverity): fix "enum misuse" for find_multipaths + +Signed-off-by: Martin Wilck +--- + libmultipath/dict.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libmultipath/dict.c b/libmultipath/dict.c +index fd29abca..eaad4f18 100644 +--- a/libmultipath/dict.c ++++ b/libmultipath/dict.c +@@ -327,7 +327,7 @@ def_find_multipaths_handler(struct config *conf, vector strvec) + int i; + + if (set_yes_no_undef(strvec, &conf->find_multipaths) == 0 && +- conf->find_multipaths != YNU_UNDEF) ++ conf->find_multipaths != FIND_MULTIPATHS_UNDEF) + return 0; + + buff = set_value(strvec); +-- +2.11.0 + diff --git a/6012-libmultipath-fix-possible-NULL-dereference.patch b/6012-libmultipath-fix-possible-NULL-dereference.patch new file mode 100644 index 0000000..b21fbf7 --- /dev/null +++ b/6012-libmultipath-fix-possible-NULL-dereference.patch @@ -0,0 +1,28 @@ +From 7ec04256a56709963e8b954fc6036ca6ba1db137 Mon Sep 17 00:00:00 2001 +From: Martin Wilck +Date: Tue, 8 Jan 2019 23:54:09 +0100 +Subject: [PATCH] libmultipath(coverity): fix possible NULL dereference + +coverity warns that recv_packet may set reply to NULL. + +Signed-off-by: Martin Wilck +--- + libmultipath/configure.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libmultipath/configure.c b/libmultipath/configure.c +index 39d2a956..af4d78de 100644 +--- a/libmultipath/configure.c ++++ b/libmultipath/configure.c +@@ -1041,7 +1041,7 @@ int check_daemon(void) + if (recv_packet(fd, &reply, timeout) != 0) + goto out; + +- if (strstr(reply, "shutdown")) ++ if (reply && strstr(reply, "shutdown")) + goto out_free; + + ret = 1; +-- +2.11.0 + diff --git a/6013-multipathd-fix-mpp-hwe-handling-when-paths-are-freed.patch b/6013-multipathd-fix-mpp-hwe-handling-when-paths-are-freed.patch new file mode 100644 index 0000000..5de6b6d --- /dev/null +++ b/6013-multipathd-fix-mpp-hwe-handling-when-paths-are-freed.patch @@ -0,0 +1,109 @@ +multipathd: fix mpp->hwe handling when paths are freed + +Commit 1f962693 didn't deal with all of cases where a path that was part +of a multipath device could be removed. verify_paths() removes any path +that no longer exists in sysfs. mpp->hwe needs to be updated here as +well, since verify_paths() could remove the path whose hwe vector is +pointed to by mpp->hwe. Also, now that extract_hwe_from_path() is +called in verify_paths(), the extract_hwe_from_path() calls that +happened immediately after verify_paths() can be dropped. + +The other part of this fix is mostly cosmetic. In ev_add_path(), if +domap() fails after the path is added to the multipath device and +verify_paths() is called, the code can loop back to the rescan label. If +the size of the path or the multipath device changed in the interim, +ev_add_path() would remove the path, without updating mpp->hwe; but +there is no way for the size to change. Just to make that clearer in the +code, I've moved the size check to before the rescan label so it only +happens once. + +Fixes: 1f962693 "multipathd: fix mpp->hwe handling on path removal" +Cc: Martin Wilck +Signed-off-by: Benjamin Marzinski +--- + libmultipath/structs_vec.c | 7 +++++++ + multipathd/main.c | 22 ++++++++-------------- + 2 files changed, 15 insertions(+), 14 deletions(-) + +diff --git a/libmultipath/structs_vec.c b/libmultipath/structs_vec.c +index 828aef2..2808efe 100644 +--- a/libmultipath/structs_vec.c ++++ b/libmultipath/structs_vec.c +@@ -418,6 +418,12 @@ int verify_paths(struct multipath *mpp, struct vectors *vecs) + vector_del_slot(mpp->paths, i); + i--; + ++ /* Make sure mpp->hwe doesn't point to freed memory. ++ * We call extract_hwe_from_path() below to restore ++ * mpp->hwe ++ */ ++ if (mpp->hwe == pp->hwe) ++ mpp->hwe = NULL; + if ((j = find_slot(vecs->pathvec, + (void *)pp)) != -1) + vector_del_slot(vecs->pathvec, j); +@@ -427,6 +433,7 @@ int verify_paths(struct multipath *mpp, struct vectors *vecs) + mpp->alias, pp->dev, pp->dev_t); + } + } ++ extract_hwe_from_path(mpp); + return count; + } + +diff --git a/multipathd/main.c b/multipathd/main.c +index 8de0871..872843c 100644 +--- a/multipathd/main.c ++++ b/multipathd/main.c +@@ -472,7 +472,6 @@ retry: + verify_paths(mpp, vecs); + mpp->action = ACT_RELOAD; + +- extract_hwe_from_path(mpp); + if (setup_map(mpp, params, PARAMS_SIZE, vecs)) { + condlog(0, "%s: failed to setup new map in update", mpp->alias); + retries = -1; +@@ -948,6 +947,14 @@ ev_add_path (struct path * pp, struct vectors * vecs, int need_do_map) + goto fail; /* leave path added to pathvec */ + } + mpp = find_mp_by_wwid(vecs->mpvec, pp->wwid); ++ if (mpp && pp->size && mpp->size != pp->size) { ++ condlog(0, "%s: failed to add new path %s, device size mismatch", mpp->alias, pp->dev); ++ int i = find_slot(vecs->pathvec, (void *)pp); ++ if (i != -1) ++ vector_del_slot(vecs->pathvec, i); ++ free_path(pp); ++ return 1; ++ } + if (mpp && mpp->wait_for_udev && + (pathcount(mpp, PATH_UP) > 0 || + (pathcount(mpp, PATH_GHOST) > 0 && pp->tpgs != TPGS_IMPLICIT && +@@ -962,18 +969,6 @@ ev_add_path (struct path * pp, struct vectors * vecs, int need_do_map) + pp->mpp = mpp; + rescan: + if (mpp) { +- if (pp->size && mpp->size != pp->size) { +- condlog(0, "%s: failed to add new path %s, " +- "device size mismatch", +- mpp->alias, pp->dev); +- int i = find_slot(vecs->pathvec, (void *)pp); +- if (i != -1) +- vector_del_slot(vecs->pathvec, i); +- clear_ref_from_mpp(pp, vecs); +- free_path(pp); +- return 1; +- } +- + condlog(4,"%s: adopting all paths for path %s", + mpp->alias, pp->dev); + if (adopt_paths(vecs->pathvec, mpp)) +@@ -981,7 +976,6 @@ rescan: + + verify_paths(mpp, vecs); + mpp->action = ACT_RELOAD; +- extract_hwe_from_path(mpp); + } else { + if (!should_multipath(pp, vecs->pathvec, vecs->mpvec)) { + orphan_path(pp, "only one path"); +-- +2.19.1 + diff --git a/6014-fix-syntax-error.patch b/6014-fix-syntax-error.patch new file mode 100644 index 0000000..8a4f6d5 --- /dev/null +++ b/6014-fix-syntax-error.patch @@ -0,0 +1,25 @@ +From 8e4c5a421ee351fe667b0bf8b99e691ab5c9c13b Mon Sep 17 00:00:00 2001 +From: wangjufeng +Date: Fri, 1 Nov 2019 16:48:49 +0800 +Subject: [PATCH] fix syntax error + +--- + Makefile.inc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile.inc b/Makefile.inc +index 5ff69a3..3744aa4 100644 +--- a/Makefile.inc ++++ b/Makefile.inc +@@ -40,7 +40,7 @@ endif + + ifndef SYSTEMD + ifeq ($(shell systemctl --version > /dev/null 2>&1 && echo 1), 1) +- SYSTEMD = $(shell systemctl --version 2> /dev/null | sed -n 's/systemd \([0-9]*\)/\1/p') ++ SYSTEMD = $(shell systemctl --version 2> /dev/null | sed -n 's/systemd\([0-9]*\)/\1/p' | awk '{print $$1}') + endif + endif + +-- +2.19.1 + diff --git a/6020-multipathd-ignore-failed-wwid-recheck.patch b/6020-multipathd-ignore-failed-wwid-recheck.patch new file mode 100644 index 0000000..2cca42e --- /dev/null +++ b/6020-multipathd-ignore-failed-wwid-recheck.patch @@ -0,0 +1,74 @@ +author Benjamin Marzinski +Sat, 30 Mar 2019 14:05:56 +0800 (01:05 -0500) +committer Christophe Varoqui +Thu, 18 Apr 2019 19:03:34 +0800 (13:03 +0200) +commit 3ad48a0bc002f3d1b2a27eafecfd7fbb390bfb94 +multipathd: ignore failed wwid recheck + +If disable_changed_wwids is set, when multipathd gets a change event on +a path, it verifies that the wwid hasn't changed in uev_update_path(). +If get_uid() failed, uev_update_path treated this as a wwid change to 0. +This could cause paths to suddenly be dropped due to an issue with +getting the wwid. Even if get_uid() failed because the path was down, +it no change uevent happend when it later became active, multipathd +would continue to ignore the path. Also, scsi_uid_fallback() clears the +failure return if it doesn't attempt to fallback, causing get_uid() +to return success, when it actually failed. + +Multipathd should neither set nor clear wwid_changed if get_uid() +returned failure. Also, scsi_uid_fallback() should retain the old return +value if it doesn't attempt to fallback. + +Signed-off-by: Benjamin Marzinski +--- + libmultipath/discovery.c | 6 +++--- + multipathd/main.c | 6 ++++-- + 2 files changed, 7 insertions(+), 5 deletions(-) + +diff --git a/libmultipath/discovery.c b/libmultipath/discovery.c +index 1369f38..a852843 100644 +--- a/libmultipath/discovery.c ++++ b/libmultipath/discovery.c +@@ -1862,9 +1862,9 @@ get_vpd_uid(struct path * pp) + } + + static ssize_t scsi_uid_fallback(struct path *pp, int path_state, +- const char **origin) ++ const char **origin, ssize_t old_len) + { +- ssize_t len = 0; ++ ssize_t len = old_len; + int retrigger; + struct config *conf; + +@@ -1935,7 +1935,7 @@ get_uid (struct path * pp, int path_state, struct udev_device *udev) + origin = "sysfs"; + } + if (len <= 0 && pp->bus == SYSFS_BUS_SCSI) +- len = scsi_uid_fallback(pp, path_state, &origin); ++ len = scsi_uid_fallback(pp, path_state, &origin, len); + } + if ( len < 0 ) { + condlog(1, "%s: failed to get %s uid: %s", +diff --git a/multipathd/main.c b/multipathd/main.c +index 872843c..49d1469 100644 +--- a/multipathd/main.c ++++ b/multipathd/main.c +@@ -1246,9 +1246,11 @@ uev_update_path (struct uevent *uev, struct vectors * vecs) + char wwid[WWID_SIZE]; + + strcpy(wwid, pp->wwid); +- get_uid(pp, pp->state, uev->udev); ++ rc = get_uid(pp, pp->state, uev->udev); + +- if (strncmp(wwid, pp->wwid, WWID_SIZE) != 0) { ++ if (rc != 0) ++ strcpy(pp->wwid, wwid); ++ else if (strncmp(wwid, pp->wwid, WWID_SIZE) != 0) { + condlog(0, "%s: path wwid changed from '%s' to '%s'. %s", + uev->kernel, wwid, pp->wwid, + (disable_changed_wwids ? "disallowing" : +-- +2.19.1 + + diff --git a/6021-libmultipath-group_by_prio-fix-signedness-bug.patch b/6021-libmultipath-group_by_prio-fix-signedness-bug.patch new file mode 100644 index 0000000..7248399 --- /dev/null +++ b/6021-libmultipath-group_by_prio-fix-signedness-bug.patch @@ -0,0 +1,30 @@ +From a358e60548ddb4631ed1b4ea404f71e1ea8f57e5 Mon Sep 17 00:00:00 2001 +From: Martin Wilck +Date: Thu, 11 Apr 2019 12:49:20 +0200 +Subject: [PATCH 1/8] libmultipath: group_by_prio: fix signedness bug + +pp->priority can be negative, so we we shouldn't compare +it with an unsigned int. + +Signed-off-by: Martin Wilck +--- + libmultipath/pgpolicies.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libmultipath/pgpolicies.c b/libmultipath/pgpolicies.c +index ac2596a..660768a 100644 +--- a/libmultipath/pgpolicies.c ++++ b/libmultipath/pgpolicies.c +@@ -312,7 +312,7 @@ out: + int group_by_prio(struct multipath *mp) + { + int i; +- unsigned int prio; ++ int prio; + struct path * pp; + struct pathgroup * pgp; + vector pathvec = NULL; +-- +1.8.3.1 + + diff --git a/6022-multipathd-handle-NULL-return-from-genhelp_handler.patch b/6022-multipathd-handle-NULL-return-from-genhelp_handler.patch new file mode 100644 index 0000000..e3ed6b6 --- /dev/null +++ b/6022-multipathd-handle-NULL-return-from-genhelp_handler.patch @@ -0,0 +1,44 @@ +From dc8b964a03a547eb8dc62b317f9f168a35943ebf Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +Date: Fri, 17 May 2019 11:14:10 -0500 +Subject: [PATCH 2/8] multipathd: handle NULL return from genhelp_handler + +parse_cmd() wasn't checking if genhelp_handler() returned NULL. It was simply +assuming that it got a string. On NULL, it now returns an error. Found by +Coverity. + +Signed-off-by: Benjamin Marzinski +--- + multipathd/cli.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/multipathd/cli.c b/multipathd/cli.c +index a75afe3..ff17a5b 100644 +--- a/multipathd/cli.c ++++ b/multipathd/cli.c +@@ -465,6 +465,8 @@ parse_cmd (char * cmd, char ** reply, int * len, void * data, int timeout ) + + if (r) { + *reply = genhelp_handler(cmd, r); ++ if (*reply == NULL) ++ return EINVAL; + *len = strlen(*reply) + 1; + return 0; + } +@@ -472,9 +474,11 @@ parse_cmd (char * cmd, char ** reply, int * len, void * data, int timeout ) + h = find_handler(fingerprint(cmdvec)); + + if (!h || !h->fn) { ++ free_keys(cmdvec); + *reply = genhelp_handler(cmd, EINVAL); ++ if (*reply == NULL) ++ return EINVAL; + *len = strlen(*reply) + 1; +- free_keys(cmdvec); + return 0; + } + +-- +1.8.3.1 + + diff --git a/6023-libmultipath-fix-parsing-of-VPD-83-type-1-T10-vendor.patch b/6023-libmultipath-fix-parsing-of-VPD-83-type-1-T10-vendor.patch new file mode 100644 index 0000000..9f53777 --- /dev/null +++ b/6023-libmultipath-fix-parsing-of-VPD-83-type-1-T10-vendor.patch @@ -0,0 +1,50 @@ +From 552bcf2f6245cbce4326455e28ab7c1160871978 Mon Sep 17 00:00:00 2001 +From: Martin Wilck +Date: Mon, 24 Jun 2019 11:27:40 +0200 +Subject: [PATCH 3/8] libmultipath: fix parsing of VPD 83 type 1 (T10 vendor + ID) + +In the buffer overflow case, the code would set p_len = out_len - len - 2, +then len = len + plen = out_len - 2, and check if len >= out_len - 1, +which is never the case. Rather, set p_len = out_len - len -1, and +check the length again before appending the underscore. + +Fixes: 18176202e75c "Read wwid from sysfs vpg_pg83 attribute" +Signed-off-by: Martin Wilck +--- + libmultipath/discovery.c | 11 +++++++++-- + 1 file changed, 9 insertions(+), 2 deletions(-) + +diff --git a/libmultipath/discovery.c b/libmultipath/discovery.c +index a852843..9e99d9d 100644 +--- a/libmultipath/discovery.c ++++ b/libmultipath/discovery.c +@@ -1151,8 +1151,11 @@ parse_vpd_pg83(const unsigned char *in, size_t in_len, + p = vpd; + while ((p = memchr(vpd, ' ', vpd_len))) { + p_len = p - vpd; +- if (len + p_len > out_len - 1) +- p_len = out_len - len - 2; ++ if (len + p_len > out_len - 1) { ++ condlog(1, "%s: WWID overflow, type 1, %d/%lu bytes required", ++ __func__, len + p_len, out_len); ++ p_len = out_len - len - 1; ++ } + memcpy(out + len, vpd, p_len); + len += p_len; + if (len >= out_len - 1) { +@@ -1161,6 +1164,10 @@ parse_vpd_pg83(const unsigned char *in, size_t in_len, + } + out[len] = '_'; + len ++; ++ if (len >= out_len - 1) { ++ out[len] = '\0'; ++ break; ++ } + vpd = p; + vpd_len -= p_len; + while (vpd && *vpd == ' ') { +-- +1.8.3.1 + + diff --git a/6024-libmultipath-Fix-buffer-overflow-in-parse_vpd_pg80.patch b/6024-libmultipath-Fix-buffer-overflow-in-parse_vpd_pg80.patch new file mode 100644 index 0000000..627443f --- /dev/null +++ b/6024-libmultipath-Fix-buffer-overflow-in-parse_vpd_pg80.patch @@ -0,0 +1,31 @@ +From c00ee906582b87aeced4b2fb0caa011edb5cbc17 Mon Sep 17 00:00:00 2001 +From: Martin Wilck +Date: Mon, 24 Jun 2019 11:27:41 +0200 +Subject: [PATCH 4/8] libmultipath: Fix buffer overflow in parse_vpd_pg80() + +We set out[len] = '\0' later, thus we should set len to no more then +out_len - 1. + +Fixes: 756ef73b7197 "Separate out vpd parsing functions" +Signed-off-by: Martin Wilck +--- + libmultipath/discovery.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libmultipath/discovery.c b/libmultipath/discovery.c +index 9e99d9d..416823b 100644 +--- a/libmultipath/discovery.c ++++ b/libmultipath/discovery.c +@@ -999,7 +999,7 @@ parse_vpd_pg80(const unsigned char *in, char *out, size_t out_len) + if (len >= out_len) { + condlog(2, "vpd pg80 overflow, %d/%d bytes required", + len, (int)out_len); +- len = out_len; ++ len = out_len - 1; + } + if (len > 0) { + memcpy(out, in + 4, len); +-- +1.8.3.1 + + diff --git a/6025-libmultipath-fix-another-WWID-overflow-in-parse_vpd_.patch b/6025-libmultipath-fix-another-WWID-overflow-in-parse_vpd_.patch new file mode 100644 index 0000000..abeb26d --- /dev/null +++ b/6025-libmultipath-fix-another-WWID-overflow-in-parse_vpd_.patch @@ -0,0 +1,31 @@ +From f39a97d2972e3959985c2771f1fc53c45897acfb Mon Sep 17 00:00:00 2001 +From: Martin Wilck +Date: Mon, 24 Jun 2019 11:27:43 +0200 +Subject: [PATCH 5/8] libmultipath: fix another WWID overflow in + parse_vpd_pg83() + +This one is an obvious typo. + +Fixes: 18176202e75c "Read wwid from sysfs vpg_pg83 attribute" +Signed-off-by: Martin Wilck +--- + libmultipath/discovery.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libmultipath/discovery.c b/libmultipath/discovery.c +index 416823b..c57369c 100644 +--- a/libmultipath/discovery.c ++++ b/libmultipath/discovery.c +@@ -1136,7 +1136,7 @@ parse_vpd_pg83(const unsigned char *in, size_t in_len, + len = 1; + vpd += 4; + vpd_len -= 4; +- if (vpd_len > out_len + 2) ++ if (vpd_len > out_len - 2) + vpd_len = out_len - 2; + memcpy(out, vpd, vpd_len); + len = vpd_len + 1; +-- +1.8.3.1 + + diff --git a/6026-libmultipath-fix-possible-WWID-overflow-in-parse_vpd.patch b/6026-libmultipath-fix-possible-WWID-overflow-in-parse_vpd.patch new file mode 100644 index 0000000..256de9a --- /dev/null +++ b/6026-libmultipath-fix-possible-WWID-overflow-in-parse_vpd.patch @@ -0,0 +1,66 @@ +From e8a63834f966cc605429c5b2ab3edc79a46c3bff Mon Sep 17 00:00:00 2001 +From: Martin Wilck +Date: Mon, 24 Jun 2019 11:27:42 +0200 +Subject: [PATCH 6/8] libmultipath: fix possible WWID overflow in + parse_vpd_pg83() + +We have to check the remaining length before printing to the +output buffer, not afterwards. + +Fixes: 18176202e75c "Read wwid from sysfs vpg_pg83 attribute" +Signed-off-by: Martin Wilck +--- + libmultipath/discovery.c | 16 +++------------- + 1 file changed, 3 insertions(+), 13 deletions(-) + +diff --git a/libmultipath/discovery.c b/libmultipath/discovery.c +index c57369c..34d425b 100644 +--- a/libmultipath/discovery.c ++++ b/libmultipath/discovery.c +@@ -1098,11 +1098,9 @@ parse_vpd_pg83(const unsigned char *in, size_t in_len, + int i; + + len = sprintf(out, "%d", vpd_type); +- for (i = 0; i < vpd_len; i++) { ++ for (i = 0; i < vpd_len && len < out_len - 2; i++) { + len += sprintf(out + len, + "%02x", vpd[i]); +- if (len >= out_len) +- break; + } + } else if (vpd_type == 0x8) { + if (!memcmp("eui.", vpd, 4)) { +@@ -1110,27 +1108,19 @@ parse_vpd_pg83(const unsigned char *in, size_t in_len, + len = 1; + vpd += 4; + vpd_len -= 4; +- for (i = 0; i < vpd_len; i++) { ++ for (i = 0; i < vpd_len && len < out_len - 1; i++) { + len += sprintf(out + len, "%c", + tolower(vpd[i])); +- if (len >= out_len) +- break; + } +- len = vpd_len + 1; +- out[len] = '\0'; + } else if (!memcmp("naa.", vpd, 4)) { + out[0] = '3'; + len = 1; + vpd += 4; + vpd_len -= 4; +- for (i = 0; i < vpd_len; i++) { ++ for (i = 0; i < vpd_len && len < out_len - 1; i++) { + len += sprintf(out + len, "%c", + tolower(vpd[i])); +- if (len >= out_len) +- break; + } +- len = vpd_len + 1; +- out[len] = '\0'; + } else { + out[0] = '8'; + len = 1; +-- +1.8.3.1 + + diff --git a/6027-libmultipath-fix-parsing-of-SCSI-name-string-iqn-for.patch b/6027-libmultipath-fix-parsing-of-SCSI-name-string-iqn-for.patch new file mode 100644 index 0000000..e2973af --- /dev/null +++ b/6027-libmultipath-fix-parsing-of-SCSI-name-string-iqn-for.patch @@ -0,0 +1,34 @@ +From 02748f3907fc95fbbf368ffda4ffb4bbf60f948d Mon Sep 17 00:00:00 2001 +From: Martin Wilck +Date: Mon, 24 Jun 2019 11:27:44 +0200 +Subject: [PATCH 7/8] libmultipath: fix parsing of SCSI name string, iqn format + +Do not overwrite the leading '8'. + +Signed-off-by: Martin Wilck +--- + libmultipath/discovery.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/libmultipath/discovery.c b/libmultipath/discovery.c +index 34d425b..a4769ee 100644 +--- a/libmultipath/discovery.c ++++ b/libmultipath/discovery.c +@@ -1123,12 +1123,11 @@ parse_vpd_pg83(const unsigned char *in, size_t in_len, + } + } else { + out[0] = '8'; +- len = 1; + vpd += 4; + vpd_len -= 4; + if (vpd_len > out_len - 2) + vpd_len = out_len - 2; +- memcpy(out, vpd, vpd_len); ++ memcpy(out + 1, vpd, vpd_len); + len = vpd_len + 1; + out[len] = '\0'; + } +-- +1.8.3.1 + + diff --git a/6028-libmultipath-fix-double-free-in-pgpolicyfn-error-pat.patch b/6028-libmultipath-fix-double-free-in-pgpolicyfn-error-pat.patch new file mode 100644 index 0000000..aa13194 --- /dev/null +++ b/6028-libmultipath-fix-double-free-in-pgpolicyfn-error-pat.patch @@ -0,0 +1,81 @@ +From 27039be7cfd551646425b0ebc43a87e86484c370 Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +Date: Fri, 23 Aug 2019 12:48:50 -0500 +Subject: [PATCH 8/8] libmultipath: fix double free in pgpolicyfn error paths + +In the pgpolicy functions, if an error is encountered after +alloc_pathgroup() is called, but before the path group is added to a +multipath device with add_pathgroup(), the pathgroup needs to be cleaned +up by calling free_pathgroup(). However, after the pathgroup has been +added to the multipath device, calling free_pgvec() will clean it up. In +this case, if free_pathgroup() is called first, the recently added +pathgroup will be freed twice. + +Reviewed-by: Martin Wilck +Signed-off-by: Benjamin Marzinski +--- + libmultipath/pgpolicies.c | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/libmultipath/pgpolicies.c b/libmultipath/pgpolicies.c +index 660768a..9acf46a 100644 +--- a/libmultipath/pgpolicies.c ++++ b/libmultipath/pgpolicies.c +@@ -125,7 +125,7 @@ int group_by_node_name(struct multipath * mp) + + /* feed the first path */ + if (store_path(pgp->paths, pp)) +- goto out2; ++ goto out1; + + bitmap[i] = 1; + +@@ -139,7 +139,7 @@ int group_by_node_name(struct multipath * mp) + if (!strncmp(pp->tgt_node_name, pp2->tgt_node_name, + NODE_NAME_SIZE)) { + if (store_path(pgp->paths, pp2)) +- goto out2; ++ goto out1; + + bitmap[j] = 1; + } +@@ -201,7 +201,7 @@ int group_by_serial(struct multipath * mp) + + /* feed the first path */ + if (store_path(pgp->paths, pp)) +- goto out2; ++ goto out1; + + bitmap[i] = 1; + +@@ -214,7 +214,7 @@ int group_by_serial(struct multipath * mp) + + if (0 == strcmp(pp->serial, pp2->serial)) { + if (store_path(pgp->paths, pp2)) +- goto out2; ++ goto out1; + + bitmap[j] = 1; + } +@@ -258,7 +258,7 @@ int one_path_per_group(struct multipath *mp) + goto out1; + + if (store_path(pgp->paths, pp)) +- goto out1; ++ goto out; + } + sort_pathgroups(mp); + free_pathvec(mp->paths, KEEP_PATHS); +@@ -379,7 +379,7 @@ int group_by_prio(struct multipath *mp) + vector_foreach_slot(pathvec, pp, i) { + if (pp->priority == prio) { + if (store_path(pgp->paths, pp)) +- goto out2; ++ goto out1; + + vector_del_slot(pathvec, i); + i--; +-- +1.8.3.1 + + diff --git a/9000-fix-segfault-when-mount-or-umount-VIMS-with-reservation-conflict.patch b/9000-fix-segfault-when-mount-or-umount-VIMS-with-reservation-conflict.patch new file mode 100644 index 0000000..e144e9d --- /dev/null +++ b/9000-fix-segfault-when-mount-or-umount-VIMS-with-reservation-conflict.patch @@ -0,0 +1,17 @@ +diff -uNr a/libmpathpersist/mpath_persist.c b/libmpathpersist/mpath_persist.c +--- a/libmpathpersist/mpath_persist.c 2017-05-24 11:01:39.000000000 +0800 ++++ b/libmpathpersist/mpath_persist.c 2017-05-24 11:02:22.000000000 +0800 +@@ -510,10 +510,10 @@ + if (!rollback && (thread[i].param.status == MPATH_PR_RESERV_CONFLICT)){ + rollback = 1; + sa_key = 0; +- for (i = 0; i < 8; ++i){ +- if (i > 0) ++ for (j = 0; j < 8; ++j){ ++ if (j > 0) + sa_key <<= 8; +- sa_key |= paramp->sa_key[i]; ++ sa_key |= paramp->sa_key[j]; + } + status = MPATH_PR_RESERV_CONFLICT ; + } diff --git a/9001-fix-multipathd-resize-when-not-all-paths-size-are-equal.patch b/9001-fix-multipathd-resize-when-not-all-paths-size-are-equal.patch new file mode 100644 index 0000000..955eceb --- /dev/null +++ b/9001-fix-multipathd-resize-when-not-all-paths-size-are-equal.patch @@ -0,0 +1,37 @@ +--- multipath-tools-130222-patched/multipathd/cli_handlers.c 2017-10-12 19:19:08.000000000 +0800 ++++ multipath-tools-130222-patched1/multipathd/cli_handlers.c 2017-10-17 14:43:43.000000000 +0800 +@@ -593,9 +593,10 @@ + char * mapname = get_keyparam(v, MAP); + struct multipath *mpp; + int minor; +- unsigned long long size; ++ unsigned long long size, sz; + struct pathgroup *pgp; + struct path *pp; ++ int i,j; + + mapname = convert_dev(mapname, 0); + condlog(2, "%s: resize map (operator)", mapname); +@@ -627,6 +628,22 @@ + mapname); + return 1; + } ++ ++ vector_foreach_slot (mpp->pg, pgp, i) { ++ vector_foreach_slot (pgp->paths, pp, j) { ++ if (!pp->udev || sysfs_get_size(pp, &sz)) { ++ condlog(0, "%s: couldn't get size for sysfs. cannot resize", ++ mapname); ++ return 1; ++ } ++ if (size != sz) { ++ condlog(0, "%s: not all path sizes are equal, please check. cannot resize", ++ mapname); ++ return 1; ++ } ++ } ++ } ++ + if (size == mpp->size) { + condlog(0, "%s: map is still the same size (%llu)", mapname, + mpp->size); diff --git a/9002-multipathd-disable-queueing-for-recreated-map-in-uev.patch b/9002-multipathd-disable-queueing-for-recreated-map-in-uev.patch new file mode 100644 index 0000000..a2cba95 --- /dev/null +++ b/9002-multipathd-disable-queueing-for-recreated-map-in-uev.patch @@ -0,0 +1,55 @@ +From 4098378d2e976c9b371ae6bf83e802fb32187f50 Mon Sep 17 00:00:00 2001 +From: sunguoshuai +Date: Tue, 22 Jan 2019 21:29:56 -0500 +Subject: [PATCH] multipathd: disable queueing for recreated map in + uev_remove_map + +reason:disable queueing for recreated map in uev_remove_map +--- + multipathd/main.c | 23 +++++++++++++++++++++-- + 1 file changed, 21 insertions(+), 2 deletions(-) + +diff --git a/multipathd/main.c b/multipathd/main.c +index cc493c1..9dd74ad 100644 +--- a/multipathd/main.c ++++ b/multipathd/main.c +@@ -647,7 +647,7 @@ uev_add_map (struct uevent * uev, struct vectors * vecs) + char *alias; + int major = -1, minor = -1, rc; + +- condlog(3, "%s: add map (uevent)", uev->kernel); ++ condlog(2, "%s: add map (uevent)", uev->kernel); + alias = uevent_get_dm_name(uev); + if (!alias) { + condlog(3, "%s: No DM_NAME in uevent", uev->kernel); +@@ -766,7 +766,26 @@ uev_remove_map (struct uevent * uev, struct vectors * vecs) + mpp->alias, mpp->dmi->minor, minor); + goto out; + } +- ++ /* ++ * There may be a race window here: ++ * 1. all paths gone, causing map flushed both from multipathd and kernel ++ * 2. paths regenerated, causing multipathd creating the map again. ++ * 1 will generate a remove uevent which can be handled after 2, ++ * so we can disable queueing for the map created by 2 here temporarily ++ * and let the change uevent (generated by 2) calling uev_add_map ++ * ->setup_multipath to set queueing again. This can prevent ++ * the deadlock in this race window. ++ * ++ * The possible deadlock is: all udevd workers hangs in ++ * devices because of queue_if_no_path, so no udevd workers ++ * can handle new event and since multipathd will remove the map, ++ * the checkerloop cannot check this map's retry tick timeout ++ * and cancel the io hang which makes the udevd worker hang forever. ++ * multipathd cannot receive any uevent from udevd because all ++ * udevd workers hang there so the map cannot be recreated ++ * again which makes a deadlock. ++ */ ++ dm_queue_if_no_path(alias, 0); + orphan_paths(vecs->pathvec, mpp); + remove_map_and_stop_waiter(mpp, vecs); + out: +-- +1.8.3.1 + diff --git a/9003-avoid-handling-paths-repeatedly-in-coalesce-paths.patch b/9003-avoid-handling-paths-repeatedly-in-coalesce-paths.patch new file mode 100644 index 0000000..d60f7d9 --- /dev/null +++ b/9003-avoid-handling-paths-repeatedly-in-coalesce-paths.patch @@ -0,0 +1,88 @@ +From 6c79d35c3d351323d18b63d76450fcfbb6ef5b56 Mon Sep 17 00:00:00 2001 +From: sunguoshuai +Date: Tue, 22 Jan 2019 22:00:35 -0500 +Subject: [PATCH] Module: fix lun expansion failure when there is offline path + +reason:fix lun expansion failure when there is offline path +--- + libmultipath/configure.c | 11 +++++++++++ + libmultipath/structs.c | 1 + + libmultipath/structs.h | 1 + + libmultipath/structs_vec.c | 1 + + 4 files changed, 14 insertions(+) + +diff --git a/libmultipath/configure.c b/libmultipath/configure.c +index 09c3dcf..1b1cc55 100644 +--- a/libmultipath/configure.c ++++ b/libmultipath/configure.c +@@ -1021,6 +1021,7 @@ int coalesce_paths (struct vectors * vecs, vector newmp, char * refwwid, + } + vector_foreach_slot (pathvec, pp1, k) { + int invalid = 0; ++ condlog(3, "%s %s: start coalesce", pp1->dev, pp1->dev_t); + /* skip this path for some reason */ + + /* 1. if path has no unique id or wwid blacklisted */ +@@ -1053,6 +1054,12 @@ int coalesce_paths (struct vectors * vecs, vector newmp, char * refwwid, + orphan_path(pp1, "only one path"); + continue; + } ++ /* if path is handled before */ ++ if (pp1->handled) { ++ condlog(3, "%s: skip handled path.", pp1->dev_t); ++ continue; ++ } ++ + + /* + * at this point, we know we really got a new mp +@@ -1071,6 +1078,10 @@ int coalesce_paths (struct vectors * vecs, vector newmp, char * refwwid, + + for (i = k + 1; i < VECTOR_SIZE(pathvec); i++) { + pp2 = VECTOR_SLOT(pathvec, i); ++ if (pp2->handled) ++ continue; ++ ++ + + if (strcmp(pp1->wwid, pp2->wwid)) + continue; +diff --git a/libmultipath/structs.c b/libmultipath/structs.c +index ae847d6..99435c1 100644 +--- a/libmultipath/structs.c ++++ b/libmultipath/structs.c +@@ -100,6 +100,7 @@ alloc_path (void) + pp->fd = -1; + pp->tpgs = TPGS_UNDEF; + pp->priority = PRIO_UNDEF; ++ pp->handled = 0; + checker_clear(&pp->checker); + dm_path_to_gen(pp)->ops = &dm_gen_path_ops; + pp->hwe = vector_alloc(); +diff --git a/libmultipath/structs.h b/libmultipath/structs.h +index 0a2623a..d667cb7 100644 +--- a/libmultipath/structs.h ++++ b/libmultipath/structs.h +@@ -277,6 +277,7 @@ struct path { + struct checker checker; + struct multipath * mpp; + int fd; ++ int handled; + int initialized; + int retriggers; + int wwid_changed; +diff --git a/libmultipath/structs_vec.c b/libmultipath/structs_vec.c +index f87d69d..fba38c0 100644 +--- a/libmultipath/structs_vec.c ++++ b/libmultipath/structs_vec.c +@@ -388,6 +388,7 @@ int verify_paths(struct multipath *mpp, struct vectors *vecs) + return 0; + + vector_foreach_slot (mpp->paths, pp, i) { ++ pp->handled = 1; + /* + * see if path is in sysfs + */ +-- +1.8.3.1 + diff --git a/9004-fix-bugs-backported-from-next-branch.patch b/9004-fix-bugs-backported-from-next-branch.patch new file mode 100644 index 0000000..dda642b --- /dev/null +++ b/9004-fix-bugs-backported-from-next-branch.patch @@ -0,0 +1,154 @@ +From a9b5625e0dba3b76832b17c6fbb34840f1a91653 Mon Sep 17 00:00:00 2001 +From: sunguoshuai +Date: Wed, 23 Jan 2019 01:57:33 -0500 +Subject: [PATCH] fix bugs backported from next branch + +reason:fix bugs backported from next branch +--- + libmultipath/prioritizers/alua.c | 4 ++++ + libmultipath/prioritizers/emc.c | 2 +- + libmultipath/prioritizers/hds.c | 20 ++++++++++++-------- + libmultipath/structs_vec.c | 4 +++- + multipathd/main.c | 5 +++++ + 5 files changed, 25 insertions(+), 10 deletions(-) + +diff --git a/libmultipath/prioritizers/alua.c b/libmultipath/prioritizers/alua.c +index 03d0a0e..1400b11 100644 +--- a/libmultipath/prioritizers/alua.c ++++ b/libmultipath/prioritizers/alua.c +@@ -128,15 +128,19 @@ int getprio (struct path * pp, char * args, unsigned int timeout) + switch(-rc) { + case ALUA_PRIO_NOT_SUPPORTED: + condlog(0, "%s: alua not supported", pp->dev); ++ rc = 0; + break; + case ALUA_PRIO_RTPG_FAILED: + condlog(0, "%s: couldn't get target port group", pp->dev); ++ rc = 0; + break; + case ALUA_PRIO_GETAAS_FAILED: + condlog(0, "%s: couldn't get asymmetric access state", pp->dev); ++ rc = 0; + break; + case ALUA_PRIO_TPGS_FAILED: + condlog(3, "%s: couldn't get supported alua states", pp->dev); ++ rc = 0; + break; + } + } +diff --git a/libmultipath/prioritizers/emc.c b/libmultipath/prioritizers/emc.c +index a2f7487..c5382e0 100644 +--- a/libmultipath/prioritizers/emc.c ++++ b/libmultipath/prioritizers/emc.c +@@ -19,7 +19,7 @@ int emc_clariion_prio(const char *dev, int fd, unsigned int timeout) + unsigned char inqCmdBlk[INQUIRY_CMDLEN] = {INQUIRY_CMD, 1, 0xC0, 0, + sizeof(sense_buffer), 0}; + struct sg_io_hdr io_hdr; +- int ret = PRIO_UNDEF; ++ int ret = 0; + + memset(&io_hdr, 0, sizeof (struct sg_io_hdr)); + memset(&sense_buffer, 0, 128); +diff --git a/libmultipath/prioritizers/hds.c b/libmultipath/prioritizers/hds.c +index 70fb5d1..56d182b 100644 +--- a/libmultipath/prioritizers/hds.c ++++ b/libmultipath/prioritizers/hds.c +@@ -98,10 +98,12 @@ int hds_modular_prio (const char *dev, int fd, unsigned int timeout) + unsigned char *inqBuffp = inqBuff; + unsigned char sense_buffer[32]; + sg_io_hdr_t io_hdr; ++ int ret = 0; + + if ((ioctl (fd, SG_GET_VERSION_NUM, &k) < 0) || (k < 30000)) { + pp_hds_log(0, "can't use SG ioctl interface"); +- return -1; ++ goto out; ++ + } + + memset (&io_hdr, 0, sizeof (sg_io_hdr_t)); +@@ -118,11 +120,11 @@ int hds_modular_prio (const char *dev, int fd, unsigned int timeout) + + if (ioctl (fd, SG_IO, &io_hdr) < 0) { + pp_hds_log(0, "SG_IO error"); +- return -1; ++ goto out; + } + if ((io_hdr.info & SG_INFO_OK_MASK) != SG_INFO_OK) { + pp_hds_log(0, "SCSI error"); +- return -1; ++ goto out; + } + + snprintf (vendor, 9, "%.8s", inqBuffp + 8); +@@ -144,11 +146,11 @@ int hds_modular_prio (const char *dev, int fd, unsigned int timeout) + switch (ldev[3]) { + case '0': case '2': case '4': case '6': case '8': case 'A': case 'C': case 'E': + pp_hds_log(4, "CTRL EVEN, LDEV EVEN, PRIO 1"); +- return 1; ++ ret = 1; + break; + case '1': case '3': case '5': case '7': case '9': case 'B': case 'D': case 'F': + pp_hds_log(4, "CTRL EVEN, LDEV ODD, PRIO 0"); +- return 0; ++ ret = 0; + break; + } + break; +@@ -156,16 +158,18 @@ int hds_modular_prio (const char *dev, int fd, unsigned int timeout) + switch (ldev[3]) { + case '0': case '2': case '4': case '6': case '8': case 'A': case 'C': case 'E': + pp_hds_log(4, "CTRL ODD, LDEV EVEN, PRIO 0"); +- return 0; ++ ret = 0; + break; + case '1': case '3': case '5': case '7': case '9': case 'B': case 'D': case 'F': + pp_hds_log(4, "CTRL ODD, LDEV ODD, PRIO 1"); +- return 1; ++ ret = 1; + break; + } + break; + } +- return -1; ++ ++out: ++ return ret; + } + + int getprio (struct path * pp, char * args, unsigned int timeout) +diff --git a/libmultipath/structs_vec.c b/libmultipath/structs_vec.c +index fba38c0..d85eb5f 100644 +--- a/libmultipath/structs_vec.c ++++ b/libmultipath/structs_vec.c +@@ -32,8 +32,10 @@ int update_mpp_paths(struct multipath *mpp, vector pathvec) + return 0; + + if (!mpp->paths && +- !(mpp->paths = vector_alloc())) ++ !(mpp->paths = vector_alloc())) { ++ condlog(2, "mpp->paths alloc failed"); + return 1; ++ } + + vector_foreach_slot (mpp->pg, pgp, i) { + vector_foreach_slot (pgp->paths, pp, j) { +diff --git a/multipathd/main.c b/multipathd/main.c +index 9dd74ad..7a80688 100644 +--- a/multipathd/main.c ++++ b/multipathd/main.c +@@ -1624,6 +1624,11 @@ enable_group(struct path * pp) + + pgp = VECTOR_SLOT(pp->mpp->pg, pp->pgindex - 1); + ++ if (!pgp) { ++ condlog(2, "%s: pgp is NULL", pp->mpp->alias); ++ return; ++ } ++ + if (pgp->status == PGSTATE_DISABLED) { + condlog(2, "%s: enable group #%i", pp->mpp->alias, pp->pgindex); + dm_enablegroup(pp->mpp->alias, pp->pgindex); +-- +2.19.1 + diff --git a/9005-bugfix-fix-change-reservation-key-to-uint8-for-memcmp.patch b/9005-bugfix-fix-change-reservation-key-to-uint8-for-memcmp.patch new file mode 100644 index 0000000..af0ac0e --- /dev/null +++ b/9005-bugfix-fix-change-reservation-key-to-uint8-for-memcmp.patch @@ -0,0 +1,46 @@ +From aa3dbb9a4c7ba220139801533a27d99542d4e909 Mon Sep 17 00:00:00 2001 +From: sunguoshuai +Date: Wed, 23 Jan 2019 02:21:31 -0500 +Subject: [PATCH] fix change reservation key to uint8 for + memcmp + +reason:fix change reservation key to uint8 for memcmp +--- + libmpathpersist/mpath_persist.c | 14 ++++++++++++-- + 1 file changed, 12 insertions(+), 2 deletions(-) + +diff --git a/libmpathpersist/mpath_persist.c b/libmpathpersist/mpath_persist.c +index 691b4e1..a2907db 100644 +--- a/libmpathpersist/mpath_persist.c ++++ b/libmpathpersist/mpath_persist.c +@@ -263,6 +263,9 @@ int mpath_persistent_reserve_out ( int fd, int rq_servact, int rq_scope, + int ret; + uint64_t prkey; + struct config *conf; ++ uint8_t uitmp[8] = {0}; ++ uint64_t uireservation = {0}; ++ int j; + + conf = get_multipath_config(); + conf->verbosity = verbose; +@@ -353,8 +356,15 @@ int mpath_persistent_reserve_out ( int fd, int rq_servact, int rq_scope, + } + } + +- if (memcmp(paramp->key, &mpp->reservation_key, 8) && +- memcmp(paramp->sa_key, &mpp->reservation_key, 8)) { ++ uireservation = get_be64(mpp->reservation_key); ++ for (j = 7; j >= 0; --j) { ++ uitmp[j] = (uireservation & 0xff); ++ uireservation >>= 8; ++ } ++ ++ if (memcmp(paramp->key, uitmp, 8) && ++ memcmp(paramp->sa_key, uitmp, 8)) { ++ + condlog(0, "%s: configured reservation key doesn't match: 0x%" PRIx64, alias, get_be64(mpp->reservation_key)); + ret = MPATH_PR_SYNTAX_ERROR; + goto out1; +-- +1.8.3.1 + diff --git a/9006-bugfix-ignore-for-clear-mismatch-key.patch b/9006-bugfix-ignore-for-clear-mismatch-key.patch new file mode 100644 index 0000000..b76e188 --- /dev/null +++ b/9006-bugfix-ignore-for-clear-mismatch-key.patch @@ -0,0 +1,49 @@ +From de2078dd66a62ca7ba2ae6adc406311e830572fa Mon Sep 17 00:00:00 2001 +From: sunguoshuai +Date: Wed, 23 Jan 2019 02:38:00 -0500 +Subject: [PATCH] ignore for clear mismatch key + +reason:ignore for clear mismatch key +--- + libmpathpersist/mpath_persist.c | 17 +++++++++++------ + 1 file changed, 11 insertions(+), 6 deletions(-) + +diff --git a/libmpathpersist/mpath_persist.c b/libmpathpersist/mpath_persist.c +index a2907db..27c848c 100644 +--- a/libmpathpersist/mpath_persist.c ++++ b/libmpathpersist/mpath_persist.c +@@ -345,7 +345,8 @@ int mpath_persistent_reserve_out ( int fd, int rq_servact, int rq_scope, + if (mpp->prkey_source == PRKEY_SOURCE_FILE && prkey && + ((!get_be64(mpp->reservation_key) && + rq_servact == MPATH_PROUT_REG_SA) || +- rq_servact == MPATH_PROUT_REG_IGN_SA)) { ++ rq_servact == MPATH_PROUT_REG_IGN_SA || ++ (!memcmp(paramp->key, &mpp->reservation_key, 8) && rq_servact == MPATH_PROUT_REG_SA))) { + memcpy(&mpp->reservation_key, paramp->sa_key, 8); + if (update_prkey_flags(alias, get_be64(mpp->reservation_key), + paramp->sa_flags)) { +@@ -362,12 +363,16 @@ int mpath_persistent_reserve_out ( int fd, int rq_servact, int rq_scope, + uireservation >>= 8; + } + +- if (memcmp(paramp->key, uitmp, 8) && +- memcmp(paramp->sa_key, uitmp, 8)) { ++ /* pass -I option */ ++ if (rq_servact != MPATH_PROUT_REG_IGN_SA) { ++ if (memcmp(paramp->key, uitmp, 8) && ++ memcmp(paramp->sa_key, uitmp, 8)) { ++ condlog(0, "%s: configured reservation key doesn't match: 0x%" PRIx64, alias, get_be64(mpp->reservation_key)); ++ ret = MPATH_PR_SYNTAX_ERROR; ++ goto out1; ++ } ++ + +- condlog(0, "%s: configured reservation key doesn't match: 0x%" PRIx64, alias, get_be64(mpp->reservation_key)); +- ret = MPATH_PR_SYNTAX_ERROR; +- goto out1; + } + + switch(rq_servact) +-- +1.8.3.1 + diff --git a/9007-bugfix-flush-and-sync-before-reboot.patch b/9007-bugfix-flush-and-sync-before-reboot.patch new file mode 100644 index 0000000..dd41184 --- /dev/null +++ b/9007-bugfix-flush-and-sync-before-reboot.patch @@ -0,0 +1,17 @@ +diff --git a/libmultipath/util.c b/libmultipath/util.c +index 8d8fcc8..3c284b7 100644 +--- a/libmultipath/util.c ++++ b/libmultipath/util.c +@@ -463,5 +463,12 @@ int safe_write(int fd, const void *buf, size_t count) + count -= r; + buf = (const char *)buf + r; + } ++ ++ /* sync->disk */ ++ if (fsync(fd) < 0) { ++ condlog(0, "failed to fsync fd :%d", fd); ++ return -errno; ++ } ++ + return 0; + } diff --git a/9008-bugfix-RH-remove-local-disk-from-pathvec.patch b/9008-bugfix-RH-remove-local-disk-from-pathvec.patch new file mode 100644 index 0000000..3aa00c4 --- /dev/null +++ b/9008-bugfix-RH-remove-local-disk-from-pathvec.patch @@ -0,0 +1,206 @@ +From f637f15dacc660f663a6cf36e3fe8f7a0cc9f9e4 Mon Sep 17 00:00:00 2001 +From: chenminhua +Date: Mon, 2 Apr 2018 04:01:04 -0400 +Subject: [PATCH] 1hostos-patch-upgrade:0330 hotpatch modify + +[Changelog]:add upgrade path +[Author]:chenminhua + +--- + libmultipath/discovery.c | 129 +++++++++++++++++++++++++++++++++++++-- + libmultipath/discovery.h | 1 + + multipathd/main.c | 4 ++ + 3 files changed, 128 insertions(+), 6 deletions(-) + +diff --git a/libmultipath/discovery.c b/libmultipath/discovery.c +index 0b1855d..95eb3a0 100644 +--- a/libmultipath/discovery.c ++++ b/libmultipath/discovery.c +@@ -34,6 +34,103 @@ + #include "prioritizers/alua_rtpg.h" + #include "foreign.h" + ++const char *conf_file = "/etc/multipath_private.conf"; ++static int conf_file_parsed = 0; ++static int should_remove_local_disk = 0; ++ ++static void parse_config() ++{ ++ FILE *fp = NULL; ++ char buffer[256] = {0}; ++ char *str = NULL; ++ char *p = NULL; ++ ++ fp = fopen(conf_file, "r"); ++ if (fp) { ++ while (fgets(buffer, sizeof(buffer), fp)) { ++ str = buffer; ++ /* skip the space */ ++ while (isspace(*str)) ++ str++; ++ /* skip the comment line */ ++ if (strncmp(str, "#", 1) == 0) ++ continue; ++ /* skip line feed */ ++ if((p = strchr(str, '\n')) != NULL) ++ *p = '\0'; ++ if (strstr(str, "remove_local_disk") != NULL && (p = strstr(str, "=")) != NULL){ ++ str = p + 1; ++ /* skip the space */ ++ while (isspace(*str)) ++ str++; ++ if (strcmp(str, "1") == 0){ ++ should_remove_local_disk = 1; ++ } ++ break; ++ } ++ } ++ fclose(fp); ++ fp = NULL; ++ } ++ conf_file_parsed = 1; ++} ++ ++static int get_should_remove_local_disk() ++{ ++ if (!conf_file_parsed) ++ parse_config(); ++ return should_remove_local_disk; ++} ++ ++/* Filter the local disks and remove them from pathvec */ ++static int ++transport (int h) ++{ ++ char buff[PATH_SIZE]; ++ int len, off; ++ struct stat a_stat; ++ ++ /* FC host */ ++ strcpy(buff, "/sys"); ++ strcat(buff, "/class/fc_host/"); ++ len = strlen(buff); ++ snprintf(buff + len, PATH_SIZE - len, "host%d", h); ++ if ((stat(buff, &a_stat) >= 0) && S_ISDIR(a_stat.st_mode)) { ++ return 0; ++ } ++ memset(buff, 0, PATH_SIZE); ++ ++ /* iSCSI device */ ++ strcpy(buff, "/sys"); ++ strcat(buff, "/class/iscsi_host/"); ++ off = strlen(buff); ++ snprintf(buff + off, PATH_SIZE - off, "host%d", h); ++ if ((stat(buff, &a_stat) >= 0) && S_ISDIR(a_stat.st_mode)) { ++ return 0; ++ } ++ return 1; ++} ++ ++int ++remove_local_path (vector pathvec, struct path *pp) ++{ ++ int i = -1; ++ ++ if(!get_should_remove_local_disk()){ ++ return 1; ++ } ++ ++ if (transport(pp->sg_id.host_no) == 0) { ++ return 1; ++ } ++ ++ if ((i = find_slot(pathvec, (void *)pp)) != -1) { ++ vector_del_slot(pathvec, i); ++ } ++ free_path(pp); ++ return 0; ++} ++ + int + alloc_path_with_pathinfo (struct config *conf, struct udev_device *udevice, + const char *wwid, int flag, struct path **pp_ptr) +@@ -118,6 +215,7 @@ path_discover (vector pathvec, struct config * conf, + { + struct path * pp; + const char * devname; ++ int err = 1; + + devname = udev_device_get_sysname(udevice); + if (!devname) +@@ -131,11 +229,22 @@ path_discover (vector pathvec, struct config * conf, + snprintf(devt, BLK_DEV_SIZE, "%d:%d", + major(devnum), minor(devnum)); + pp = find_path_by_devt(pathvec, devt); +- if (!pp) +- return store_pathinfo(pathvec, conf, +- udevice, flag, NULL); ++ if (!pp) { ++ err = store_pathinfo(pathvec, conf, ++ udevice, flag, &pp); ++ if (err == 1) ++ return 1; ++ if (err == 0) ++ remove_local_path(pathvec, pp); ++ return 0; ++ } + } +- return pathinfo(pp, conf, flag); ++ err = pathinfo(pp, conf, flag); ++ if (err) ++ return err; ++ ++ remove_local_path(pathvec, pp); ++ return err; + } + + int +@@ -1882,8 +1991,16 @@ int pathinfo(struct path *pp, struct config *conf, int mask) + /* + * fetch info available in sysfs + */ +- if (mask & DI_SYSFS && sysfs_pathinfo(pp, conf->hwtable)) +- return PATHINFO_FAILED; ++ if (mask & DI_SYSFS) { ++ if (sysfs_pathinfo(pp, conf->hwtable)) ++ return 1; ++ ++ /* free local device */ ++ if (transport(pp->sg_id.host_no)) { ++ condlog(3, "%s is a local device", pp->dev); ++ return 0; ++ } ++ } + + if (mask & DI_BLACKLIST && mask & DI_SYSFS) { + if (filter_device(conf->blist_device, conf->elist_device, +diff --git a/libmultipath/discovery.h b/libmultipath/discovery.h +index 9aacf75..c4b1d25 100644 +--- a/libmultipath/discovery.h ++++ b/libmultipath/discovery.h +@@ -53,6 +53,7 @@ ssize_t sysfs_get_vpd (struct udev_device * udev, int pg, unsigned char * buff, + int sysfs_get_asymmetric_access_state(struct path *pp, + char *buff, int buflen); + int get_uid(struct path * pp, int path_state, struct udev_device *udev); ++int remove_local_path(vector pathvec, struct path *pp); + + /* + * discovery bitmask +diff --git a/multipathd/main.c b/multipathd/main.c +index 7a80688..c2757c4 100644 +--- a/multipathd/main.c ++++ b/multipathd/main.c +@@ -917,6 +917,10 @@ ev_add_path (struct path * pp, struct vectors * vecs, int need_do_map) + int start_waiter = 0; + int ret; + ++ /* if pp is local path,remove it and return 0. */ ++ if (!remove_local_path(vecs->pathvec, pp)) ++ return 0; ++ + /* + * need path UID to go any further + */ +-- +2.19.1 + diff --git a/9009-bugfix-lun-expansion-failure-when-there-is-offline-path.patch b/9009-bugfix-lun-expansion-failure-when-there-is-offline-path.patch new file mode 100644 index 0000000..8586f3d --- /dev/null +++ b/9009-bugfix-lun-expansion-failure-when-there-is-offline-path.patch @@ -0,0 +1,54 @@ +diff --git a/libmultipath/configure.c b/libmultipath/configure.c +index 1b1cc55..f66bd5b 100644 +--- a/libmultipath/configure.c ++++ b/libmultipath/configure.c +@@ -1054,11 +1054,18 @@ int coalesce_paths (struct vectors * vecs, vector newmp, char * refwwid, + orphan_path(pp1, "only one path"); + continue; + } +- /* if path is handled before */ +- if (pp1->handled) { +- condlog(3, "%s: skip handled path.", pp1->dev_t); +- continue; +- } ++ ++ /* if path is offline */ ++ if (pp1->state == PATH_DOWN) { ++ orphan_path(pp1, "skip offline path"); ++ continue; ++ } ++ ++ /* if path is handled before */ ++ if (pp1->handled) { ++ condlog(3, "%s: skip handled path.", pp1->dev_t); ++ continue; ++ } + + + /* +@@ -1086,6 +1093,9 @@ int coalesce_paths (struct vectors * vecs, vector newmp, char * refwwid, + if (strcmp(pp1->wwid, pp2->wwid)) + continue; + ++ if (!pp2->size || pp2->state == PATH_DOWN) ++ continue; ++ + if (!mpp->size && pp2->size) + mpp->size = pp2->size; + +diff --git a/libmultipath/structs_vec.c b/libmultipath/structs_vec.c +index d85eb5f..6c42824 100644 +--- a/libmultipath/structs_vec.c ++++ b/libmultipath/structs_vec.c +@@ -394,8 +394,9 @@ int verify_paths(struct multipath *mpp, struct vectors *vecs) + /* + * see if path is in sysfs + */ +- if (sysfs_attr_get_value(pp->udev, "dev", +- pp->dev_t, BLK_DEV_SIZE) < 0) { ++ if ((sysfs_attr_get_value(pp->udev, "dev", ++ pp->dev_t, BLK_DEV_SIZE) < 0) || ++ (pp->state == PATH_DOWN && pp->size != mpp->size)) { + if (pp->state != PATH_DOWN) { + condlog(1, "%s: removing valid path %s in state %d", + mpp->alias, pp->dev, pp->state); diff --git a/9010-bugfix-some-memory-leaks-issues-in-libmpathpersist.patch b/9010-bugfix-some-memory-leaks-issues-in-libmpathpersist.patch new file mode 100644 index 0000000..1b61be2 --- /dev/null +++ b/9010-bugfix-some-memory-leaks-issues-in-libmpathpersist.patch @@ -0,0 +1,162 @@ +diff --git a/libmpathpersist/mpath_persist.c b/libmpathpersist/mpath_persist.c +index 27c848c..1e6a172 100644 +--- a/libmpathpersist/mpath_persist.c ++++ b/libmpathpersist/mpath_persist.c +@@ -199,6 +199,11 @@ int mpath_persistent_reserve_in (int fd, int rq_servact, + if (map_present && !dm_is_mpath(alias)){ + condlog( 0, "%s: not a multipath device.", alias); + ret = MPATH_PR_DMMP_ERROR; ++ if (curmp) ++ vector_free(curmp); ++ if (pathvec) ++ vector_free(pathvec); ++ + goto out; + } + +@@ -297,6 +302,10 @@ int mpath_persistent_reserve_out ( int fd, int rq_servact, int rq_scope, + if (map_present && !dm_is_mpath(alias)){ + condlog(3, "%s: not a multipath device.", alias); + ret = MPATH_PR_DMMP_ERROR; ++ if (curmp) ++ vector_free(curmp); ++ if (pathvec) ++ vector_free(pathvec); + goto out; + } + +@@ -321,7 +330,7 @@ int mpath_persistent_reserve_out ( int fd, int rq_servact, int rq_scope, + goto out1; + } + +- /* get info of all paths from the dm device */ ++ /* get info of all paths from the dm device */ + if (get_mpvec(curmp, pathvec, alias)){ + condlog(0, "%s: failed to get device info.", alias); + ret = MPATH_PR_DMMP_ERROR; +@@ -882,7 +891,7 @@ out: + return (status); + } + +-void * mpath_alloc_prin_response(int prin_sa) ++void *mpath_alloc_prin_response(int prin_sa) + { + void * ptr = NULL; + int size=0; +@@ -905,6 +914,10 @@ void * mpath_alloc_prin_response(int prin_sa) + if (size > 0) + { + ptr = calloc(size, 1); ++ if (!ptr) { ++ condlog (0, "failed to allocate MPATH_PRIN_RFSTAT_SA buffer"); ++ return NULL; ++ } + } + return ptr; + } +diff --git a/libmpathpersist/mpath_pr_ioctl.c b/libmpathpersist/mpath_pr_ioctl.c +index 6dd7403..b317b4e 100644 +--- a/libmpathpersist/mpath_pr_ioctl.c ++++ b/libmpathpersist/mpath_pr_ioctl.c +@@ -25,8 +25,8 @@ + int prin_do_scsi_ioctl(char * dev, int rq_servact, struct prin_resp *resp, int noisy); + void mpath_format_readkeys(struct prin_resp *pr_buff, int len , int noisy); + void mpath_format_readfullstatus(struct prin_resp *pr_buff, int len, int noisy); +-int mpath_translate_response (char * dev, struct sg_io_hdr io_hdr, +- SenseData_t *Sensedata, int noisy); ++int mpath_translate_response (const char *dev, struct sg_io_hdr *io_hdr, ++ const SenseData_t *Sensedata, int noisy); + void dumpHex(const char* str, int len, int no_ascii); + int prout_do_scsi_ioctl( char * dev, int rq_servact, int rq_scope, + unsigned int rq_type, struct prout_param_descriptor *paramp, int noisy); +@@ -115,7 +115,7 @@ retry : + + condlog(4, "%s: Duration=%u (ms)", dev, io_hdr.duration); + +- status = mpath_translate_response(dev, io_hdr, &Sensedata, noisy); ++ status = mpath_translate_response(dev, &io_hdr, &Sensedata, noisy); + condlog(3, "%s: status = %d", dev, status); + + if (status == MPATH_PR_SENSE_UNIT_ATTENTION && (retry > 0)) +@@ -354,7 +354,7 @@ retry : + condlog(3, "%s: duration = %u (ms)", dev, io_hdr.duration); + condlog(4, "%s: persistent reservation in: requested %d bytes but got %d bytes)", dev, mx_resp_len, got); + +- status = mpath_translate_response(dev, io_hdr, &Sensedata, noisy); ++ status = mpath_translate_response(dev, &io_hdr, &Sensedata, noisy); + + if (status == MPATH_PR_SENSE_UNIT_ATTENTION && (retry > 0)) + { +@@ -399,18 +399,18 @@ out: + return status; + } + +-int mpath_translate_response (char * dev, struct sg_io_hdr io_hdr, +- SenseData_t *Sensedata, int noisy) ++int mpath_translate_response (const char *dev, struct sg_io_hdr *io_hdr, ++ const SenseData_t *Sensedata, int noisy) + { + condlog(3, "%s: status driver:%02x host:%02x scsi:%02x", dev, +- io_hdr.driver_status, io_hdr.host_status ,io_hdr.status); +- io_hdr.status &= 0x7e; +- if ((0 == io_hdr.status) && +- (0 == io_hdr.host_status) && +- (0 == io_hdr.driver_status)) ++ io_hdr->driver_status, io_hdr->host_status ,io_hdr->status); ++ io_hdr->status &= 0x7e; ++ if ((0 == io_hdr->status) && ++ (0 == io_hdr->host_status) && ++ (0 == io_hdr->driver_status)) + return MPATH_PR_SUCCESS; + +- switch(io_hdr.status) { ++ switch(io_hdr->status) { + case SAM_STAT_GOOD: + break; + case SAM_STAT_CHECK_CONDITION: +@@ -450,13 +450,13 @@ int mpath_translate_response (char * dev, struct sg_io_hdr io_hdr, + return MPATH_PR_OTHER; + } + +- switch(io_hdr.host_status) { ++ switch(io_hdr->host_status) { + case DID_OK : + break; + default : + return MPATH_PR_OTHER; + } +- switch(io_hdr.driver_status) ++ switch(io_hdr->driver_status) + { + case DRIVER_OK: + break; +diff --git a/mpathpersist/main.c b/mpathpersist/main.c +index 0e4d3f2..4db07b2 100644 +--- a/mpathpersist/main.c ++++ b/mpathpersist/main.c +@@ -61,7 +61,7 @@ struct udev *udev; + + int main (int argc, char * argv[]) + { +- int fd, c, res; ++ int c, res, fd = -1; + const char *device_name = NULL; + int num_prin_sa = 0; + int num_prout_sa = 0; +@@ -488,6 +488,7 @@ int main (int argc, char * argv[]) + } + + res = close (fd); ++ fd = -1; + if (res < 0) + { + mpath_lib_exit(conf); +@@ -496,6 +497,8 @@ int main (int argc, char * argv[]) + } + + out : ++ if (fd >= 0) ++ close(fd); + mpath_lib_exit(conf); + udev_unref(udev); + return (ret >= 0) ? ret : MPATH_PR_OTHER; diff --git a/9011-bugfix-change-log-level-to-info-if-alua-is-not-support-by-s.patch b/9011-bugfix-change-log-level-to-info-if-alua-is-not-support-by-s.patch new file mode 100644 index 0000000..6a0944a --- /dev/null +++ b/9011-bugfix-change-log-level-to-info-if-alua-is-not-support-by-s.patch @@ -0,0 +1,26 @@ +From 0008a2343765ab689cfc66acd8fc84630611d796 Mon Sep 17 00:00:00 2001 +From: root +Date: Fri, 22 Mar 2019 19:37:43 +0800 +Subject: [PATCH 1/5] change log level to info if alua is not support by + storage server + +--- + libmultipath/prioritizers/alua.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libmultipath/prioritizers/alua.c b/libmultipath/prioritizers/alua.c +index 1400b11..6b69982 100644 +--- a/libmultipath/prioritizers/alua.c ++++ b/libmultipath/prioritizers/alua.c +@@ -127,7 +127,7 @@ int getprio (struct path * pp, char * args, unsigned int timeout) + } else { + switch(-rc) { + case ALUA_PRIO_NOT_SUPPORTED: +- condlog(0, "%s: alua not supported", pp->dev); ++ condlog(3, "%s: alua not supported", pp->dev); + rc = 0; + break; + case ALUA_PRIO_RTPG_FAILED: +-- +2.19.1 + diff --git a/9012-bugfix-clear-mpp-path-reference-when-path-is-freed-otherwis.patch b/9012-bugfix-clear-mpp-path-reference-when-path-is-freed-otherwis.patch new file mode 100644 index 0000000..3de1359 --- /dev/null +++ b/9012-bugfix-clear-mpp-path-reference-when-path-is-freed-otherwis.patch @@ -0,0 +1,139 @@ +From 2c3047d7f6bd8cdd1d92cab32893cecdd5a1dfa9 Mon Sep 17 00:00:00 2001 +From: root +Date: Fri, 22 Mar 2019 19:48:35 +0800 +Subject: [PATCH] clear mpp path reference when path is freed, otherwise double + free may occur in verify_paths. + +call stack: + vecs=vecs@entry=0x557b01d62140, rpvec=rpvec@entry=0x0) at structs_vec.c:521 + at main.c:574 + uev=) at main.c:510 + uev_trigger=uev_trigger@entry=0x557affdfe3d0 , trigger_data=) + at uevent.c:178 +--- + libmultipath/discovery.c | 10 ++++++---- + libmultipath/discovery.h | 2 +- + multipathd/main.c | 23 ++++++++++++++++++++++- + 3 files changed, 29 insertions(+), 6 deletions(-) + +diff --git a/libmultipath/discovery.c b/libmultipath/discovery.c +index 53fc67a..305d27c 100644 +--- a/libmultipath/discovery.c ++++ b/libmultipath/discovery.c +@@ -112,7 +112,7 @@ transport (int h) + } + + int +-remove_local_path (vector pathvec, struct path *pp) ++remove_local_path (vector pathvec, struct path *pp, int isfree) + { + int i = -1; + +@@ -127,7 +127,9 @@ remove_local_path (vector pathvec, struct path *pp) + if ((i = find_slot(pathvec, (void *)pp)) != -1) { + vector_del_slot(pathvec, i); + } +- free_path(pp); ++ if(isfree){ ++ free_path(pp); ++ } + return 0; + } + +@@ -235,7 +237,7 @@ path_discover (vector pathvec, struct config * conf, + if (err == 1) + return 1; + if (err == 0) +- remove_local_path(pathvec, pp); ++ remove_local_path(pathvec, pp, 1); + return 0; + } + } +@@ -243,7 +245,7 @@ path_discover (vector pathvec, struct config * conf, + if (err) + return err; + +- remove_local_path(pathvec, pp); ++ remove_local_path(pathvec, pp, 1); + return err; + } + +diff --git a/libmultipath/discovery.h b/libmultipath/discovery.h +index c4b1d25..0fb0d3a 100644 +--- a/libmultipath/discovery.h ++++ b/libmultipath/discovery.h +@@ -53,7 +53,7 @@ ssize_t sysfs_get_vpd (struct udev_device * udev, int pg, unsigned char * buff, + int sysfs_get_asymmetric_access_state(struct path *pp, + char *buff, int buflen); + int get_uid(struct path * pp, int path_state, struct udev_device *udev); +-int remove_local_path(vector pathvec, struct path *pp); ++int remove_local_path(vector pathvec, struct path *pp, int isfree); + + /* + * discovery bitmask +diff --git a/multipathd/main.c b/multipathd/main.c +index b180f2a..8de0871 100644 +--- a/multipathd/main.c ++++ b/multipathd/main.c +@@ -815,6 +815,21 @@ ev_remove_map (char * devname, char * alias, int minor, struct vectors * vecs) + return flush_map(mpp, vecs, 0); + } + ++static ++void clear_ref_from_mpp(struct path * pp, struct vectors * vecs) ++{ ++ struct multipath * mpp = NULL; ++ int i = -1; ++ ++ mpp = find_mp_by_wwid(vecs->mpvec, pp->wwid); ++ if(!!mpp){ ++ condlog(2, "%s: clear path from mpp %s", pp->dev, mpp->alias); ++ if ((i = find_slot(mpp->paths, (void *)pp)) != -1){ ++ vector_del_slot(mpp->paths, i); ++ } ++ } ++} ++ + static int + uev_add_path (struct uevent *uev, struct vectors * vecs, int need_do_map) + { +@@ -857,6 +872,7 @@ uev_add_path (struct uevent *uev, struct vectors * vecs, int need_do_map) + i = find_slot(vecs->pathvec, (void *)pp); + if (i != -1) + vector_del_slot(vecs->pathvec, i); ++ clear_ref_from_mpp(pp, vecs); + free_path(pp); + } else { + condlog(0, "%s: failed to reinitialize path", +@@ -918,8 +934,11 @@ ev_add_path (struct path * pp, struct vectors * vecs, int need_do_map) + int ret; + + /* if pp is local path,remove it and return 0. */ +- if (!remove_local_path(vecs->pathvec, pp)) ++ if (!remove_local_path(vecs->pathvec, pp, 0)){ ++ clear_ref_from_mpp(pp, vecs); ++ free_path(pp); + return 0; ++ } + + /* + * need path UID to go any further +@@ -950,6 +969,7 @@ rescan: + int i = find_slot(vecs->pathvec, (void *)pp); + if (i != -1) + vector_del_slot(vecs->pathvec, i); ++ clear_ref_from_mpp(pp, vecs); + free_path(pp); + return 1; + } +@@ -1182,6 +1202,7 @@ out: + if ((i = find_slot(vecs->pathvec, (void *)pp)) != -1) + vector_del_slot(vecs->pathvec, i); + ++ clear_ref_from_mpp(pp, vecs); + free_path(pp); + + return retval; +-- +2.19.1 + diff --git a/9013-bugfix-libmultipath-fix-memory-leaks-from-scandir-use.patch b/9013-bugfix-libmultipath-fix-memory-leaks-from-scandir-use.patch new file mode 100644 index 0000000..8cf6a2f --- /dev/null +++ b/9013-bugfix-libmultipath-fix-memory-leaks-from-scandir-use.patch @@ -0,0 +1,91 @@ +From a10343b550f56c6c39c6a9b8f9ad38ab825a3fa3 Mon Sep 17 00:00:00 2001 +From: root +Date: Fri, 22 Mar 2019 19:58:56 +0800 +Subject: [PATCH 3/5] libmultipath: fix memory leaks from scandir() use + +upstream commit b0e8a7456dd83cd0a5ecd1005e016656e785405f + +scandir() users must not only free the resulting dirent* array, +but also every member. Add a cleanup function, and fix the +existing users of scandir() in libmultipath. + +Add a small helper macro for casting function pointers to the +type pthread_cleanup_push() expects. +--- + libmultipath/config.c | 10 ++++------ + libmultipath/util.c | 9 +++++++++ + libmultipath/util.h | 8 ++++++++ + 3 files changed, 21 insertions(+), 6 deletions(-) + +diff --git a/libmultipath/config.c b/libmultipath/config.c +index bfd07e3..654f330 100644 +--- a/libmultipath/config.c ++++ b/libmultipath/config.c +@@ -640,17 +640,13 @@ free_config (struct config * conf) + FREE(conf); + } + +-static void free_namelist(void *nl) +-{ +- free(nl); +-} +- + /* if multipath fails to process the config directory, it should continue, + * with just a warning message */ + static void + process_config_dir(struct config *conf, vector keywords, char *dir) + { + struct dirent **namelist; ++ struct scandir_result sr; + int i, n; + char path[LINE_MAX]; + int old_hwtable_size; +@@ -670,7 +666,9 @@ process_config_dir(struct config *conf, vector keywords, char *dir) + return; + } else if (n == 0) + return; +- pthread_cleanup_push(free_namelist, namelist); ++ sr.di = namelist; ++ sr.n = n; ++ pthread_cleanup_push_cast(free_scandir_result, &sr); + for (i = 0; i < n; i++) { + if (!strstr(namelist[i]->d_name, ".conf")) + continue; +diff --git a/libmultipath/util.c b/libmultipath/util.c +index 3c284b7..2bb1102 100644 +--- a/libmultipath/util.c ++++ b/libmultipath/util.c +@@ -472,3 +472,12 @@ int safe_write(int fd, const void *buf, size_t count) + + return 0; + } ++ ++void free_scandir_result(struct scandir_result *res) ++{ ++ int i; ++ ++ for (i = 0; i < res->n; i++) ++ FREE(res->di[i]); ++ FREE(res->di); ++} +diff --git a/libmultipath/util.h b/libmultipath/util.h +index 56cec76..4374720 100644 +--- a/libmultipath/util.h ++++ b/libmultipath/util.h +@@ -28,5 +28,13 @@ int safe_write(int fd, const void *buf, size_t count); + snprintf(var, sizeof(var), format, ##args) >= sizeof(var) + #define safe_snprintf(var, size, format, args...) \ + snprintf(var, size, format, ##args) >= size ++#define pthread_cleanup_push_cast(f, arg) \ ++ pthread_cleanup_push(((void (*)(void *))&f), (arg)) ++ ++struct scandir_result { ++ struct dirent **di; ++ int n; ++}; ++void free_scandir_result(struct scandir_result *); + + #endif /* _UTIL_H */ +-- +2.19.1 + diff --git a/9014-bugfix-libmultipath-fix-memory-leak-in-disassemble_map.patch b/9014-bugfix-libmultipath-fix-memory-leak-in-disassemble_map.patch new file mode 100644 index 0000000..a4873a7 --- /dev/null +++ b/9014-bugfix-libmultipath-fix-memory-leak-in-disassemble_map.patch @@ -0,0 +1,87 @@ +From db72d840682d15abb2e6694704a91200e513dbac Mon Sep 17 00:00:00 2001 +From: root +Date: Fri, 22 Mar 2019 20:33:53 +0800 +Subject: [PATCH 5/5] libmultipath: fix memory leak in disassemble_map + +--- + libmultipath/dmparser.c | 12 ++++++++++-- + libmultipath/structs_vec.c | 10 ++++++++++ + 2 files changed, 20 insertions(+), 2 deletions(-) + +diff --git a/libmultipath/dmparser.c b/libmultipath/dmparser.c +index 620f507..1558c4e 100644 +--- a/libmultipath/dmparser.c ++++ b/libmultipath/dmparser.c +@@ -142,6 +142,7 @@ int disassemble_map(vector pathvec, char *params, struct multipath *mpp, + int def_minio = 0; + struct path * pp; + struct pathgroup * pgp; ++ int pp_unfound; + + p = params; + +@@ -291,6 +292,7 @@ int disassemble_map(vector pathvec, char *params, struct multipath *mpp, + char devname[FILE_NAME_SIZE]; + + pp = NULL; ++ pp_unfound = 0; + p += get_word(p, &word); + + if (!word) +@@ -310,6 +312,7 @@ int disassemble_map(vector pathvec, char *params, struct multipath *mpp, + } + + if (!pp) { ++ pp_unfound = 1; + pp = alloc_path(); + + if (!pp) +@@ -322,8 +325,10 @@ int disassemble_map(vector pathvec, char *params, struct multipath *mpp, + WWID_SIZE - 1); + } + /* Only call this in multipath client mode */ +- if (!is_daemon && store_path(pathvec, pp)) ++ if (!is_daemon && store_path(pathvec, pp)) { ++ free_path(pp); + goto out1; ++ } + } else { + if (!strlen(pp->wwid) && + strlen(mpp->wwid)) +@@ -332,8 +337,11 @@ int disassemble_map(vector pathvec, char *params, struct multipath *mpp, + } + FREE(word); + +- if (store_path(pgp->paths, pp)) ++ if (store_path(pgp->paths, pp)) { ++ if (pp_unfound) ++ free_path(pp); + goto out; ++ } + + /* + * Update wwid for multipaths which are not setup +diff --git a/libmultipath/structs_vec.c b/libmultipath/structs_vec.c +index 6c42824..828aef2 100644 +--- a/libmultipath/structs_vec.c ++++ b/libmultipath/structs_vec.c +@@ -252,6 +252,16 @@ void sync_paths(struct multipath *mpp, vector pathvec) + update_mpp_paths(mpp, pathvec); + vector_foreach_slot (mpp->paths, pp, i) + pp->mpp = mpp; ++ ++ vector_foreach_slot (mpp->pg, pgp, i) { ++ vector_foreach_slot (pgp->paths, pp, j) { ++ if ((find_slot(mpp->paths, pp) == -1) \ ++ && (find_slot(pathvec, pp) == -1)) { ++ vector_del_slot(pgp->paths, j--); ++ free_path(pp); ++ } ++ } ++ } + } + + int +-- +2.19.1 + diff --git a/9015-bugfix-check-close-return-value.patch b/9015-bugfix-check-close-return-value.patch new file mode 100644 index 0000000..8115f5c --- /dev/null +++ b/9015-bugfix-check-close-return-value.patch @@ -0,0 +1,29 @@ +Subject: [PATCH] check close return value + +--- + mpathpersist/main.c | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/mpathpersist/main.c b/mpathpersist/main.c +index 4db07b2..db8b6d7 100644 +--- a/mpathpersist/main.c ++++ b/mpathpersist/main.c +@@ -498,7 +498,14 @@ int main (int argc, char * argv[]) + + out : + if (fd >= 0) +- close(fd); ++ { ++ res = close(fd); ++ if (res < 0) ++ { ++ ret = MPATH_PR_FILE_ERROR; ++ } ++ ++ } + mpath_lib_exit(conf); + udev_unref(udev); + return (ret >= 0) ? ret : MPATH_PR_OTHER; +-- +2.19.1 + diff --git a/9016-fix-find-multipath-failure.patch b/9016-fix-find-multipath-failure.patch new file mode 100644 index 0000000..7d87131 --- /dev/null +++ b/9016-fix-find-multipath-failure.patch @@ -0,0 +1,28 @@ +From eba371974dc9343740ff3b3fd18caab8529291d1 Mon Sep 17 00:00:00 2001 +From: openEuler Buildteam +Date: Thu, 2 Jan 2020 15:34:13 +0800 +Subject: [PATCH] device-mapper-multipath: fix find multipath failure + +when DEFAULT_FIND_MULTIPATHS is FIND_MULTIPATHS_STRICT, it fail to +find multipath in find_multipaths function, use FIND_MULTIPATHS_OFF +instead of FIND_MULTIPATHS_STRICT. +--- + libmultipath/defaults.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libmultipath/defaults.h b/libmultipath/defaults.h +index 7f3839f..c84d31d 100644 +--- a/libmultipath/defaults.h ++++ b/libmultipath/defaults.h +@@ -17,7 +17,7 @@ + #define DEFAULT_NO_PATH_RETRY NO_PATH_RETRY_UNDEF + #define DEFAULT_VERBOSITY 2 + #define DEFAULT_REASSIGN_MAPS 0 +-#define DEFAULT_FIND_MULTIPATHS FIND_MULTIPATHS_STRICT ++#define DEFAULT_FIND_MULTIPATHS FIND_MULTIPATHS_OFF + #define DEFAULT_FAST_IO_FAIL 5 + #define DEFAULT_DEV_LOSS_TMO 600 + #define DEFAULT_RETAIN_HWHANDLER RETAIN_HWHANDLER_ON +-- +1.8.3.1 + diff --git a/9017-change-kpartx-file-and-default-bindir.patch b/9017-change-kpartx-file-and-default-bindir.patch new file mode 100644 index 0000000..f3ef96b --- /dev/null +++ b/9017-change-kpartx-file-and-default-bindir.patch @@ -0,0 +1,42 @@ +From 768883da9969b76aade3e16d4a5b8cec47d6f30e Mon Sep 17 00:00:00 2001 +From: wangjufeng +Date: Fri, 10 Jan 2020 11:57:08 +0800 +Subject: [PATCH] kpartx: change kpartx file and default bindir + +Change default bindir of multipath to /usr/sbin. Don't +set device name-partition number delimiter in kpartx rules. + +Signed-off-by: wangjufeng +--- + Makefile.inc | 2 +- + kpartx/kpartx.rules | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Makefile.inc b/Makefile.inc +index af2f5ba..e6466ee 100644 +--- a/Makefile.inc ++++ b/Makefile.inc +@@ -49,7 +49,7 @@ ifndef SYSTEMDPATH + endif + + prefix = +-exec_prefix = $(prefix) ++exec_prefix = $(prefix)/usr + usr_prefix = $(prefix) + bindir = $(exec_prefix)/sbin + libudevdir = $(prefix)/$(SYSTEMDPATH)/udev +diff --git a/kpartx/kpartx.rules b/kpartx/kpartx.rules +index 8f99049..8a3a171 100644 +--- a/kpartx/kpartx.rules ++++ b/kpartx/kpartx.rules +@@ -32,6 +32,6 @@ LABEL="mpath_kpartx_end" + GOTO="kpartx_end" + + LABEL="run_kpartx" +-RUN+="/sbin/kpartx -un -p -part /dev/$name" ++RUN+="/sbin/kpartx -un /dev/$name" + + LABEL="kpartx_end" +-- +1.8.3.1 + diff --git a/multipath-tools-ef6d98b.tgz b/multipath-tools-ef6d98b.tgz new file mode 100644 index 0000000000000000000000000000000000000000..37d46dffd158cbe9d6b8999b51e94ecbfc7ecf1c GIT binary patch literal 410741 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

?MhgI~z`WWTXO} zx$7h(Mq)JR}WZLLhed?lty}qG7V& zP$Kb*1Y@?eQK8wdfX?)?(H8hvFtmnI`lU_Ic&NWdlM$I&$Xbs$AUs9PM~F%MxiObBjn5KS(n?5ugga%dQ34vUK!mKI<^dDg<{O9otx6I>}E zX%&bJll{|N>&56A(-A@+t=}+Cq$RZu9lQ0;PE^~&z^r7f)aqM-vM3v)Wm+A5h~{PR zNa2NB+*QeJb&Kgf|`goG++M^H< zv#bFus5R@qBj0(w8_`j%6i!QF$uvyP+_)g^3z5q(`n=3A?&)1Rkdrq(y99?uC!*Vq zXc(k};33z@rJ6~~j;Bp+oElj>4hOKS5!=>cY~-RWI$m)kI-3nxufLQCWR9?OY8%SN z1IG%GOw4RLhXTV9sAyDKpb?OnJ-d^^pmb(!vYy;rBSl2sZ5|N7Mu`qPq=gyp}L7JbB4DT~{tM1fLh5g7#MwAXM zmyj~W912~UwU9={!=1$S*o!Bh1)ZH7x7C1F>7Yq4Lr^slWMi2$H zII$w^*lYDEYOmXfQH)1NMDd1A6$eJngZQS~`v3%jHtjTGH1#eik^TvW0Xj6mmh>gs zg&kiIHnDxy;@t@5qD%~NvU@Oo2ogBc`~j6OXtzF$rwD0*=m6T&pY$G~*E1|<4NKIw zrGCE=0C9w2G;P6ED@TxG1`F3qiaLcy%Mk@t8sXsLd;njKVm#`Q92`2jOR<{Q*KBkP zOE(30^`}Ey#C(A!aWP~NPl4mi+Q??Rv%bCS6=9MrLuhXxuLRyaI+ht-&caCue1;}l z_^^rUF43Z5wzhyCB0uH`?7|cW5v-IOUaolKMwkRR@5ol^V1IuC^w;5AkNb))t$5Bj zQVG|JOe7XRg?NgU^+#dHZ6|GFml!bwb$8mPBbHJac$rktc#IiQfuar~@Jc(cGBT@j zO=?48QEN#N$z@XA>_E{L5J|pPkZQl8R{Rw}r|JPL@CUxWy+$1L5d|^z+%mW7?4wg8AUc}_k>%ztXdm-F7IN3y# zA%U4BS;UThiN93F8Z-%vVZj%er_L?xa|{=D0^g7h19^0c#A}LTMNx1X%Ww0U1sA+b zrdW#7hl7Fn`6ZX{nCSkmwM3Qa+=;Bp>2x}`+|MHrjGpT|m)n2xza{*ikg2~E0CX|` zuWW5UOyNJ^^E>|kC;T!0=V=y6yuNp=4yuiV6n+^T>pOkN0^xWRqZo_VoFaFM7`qy8 zJYHKRoT*i>Xa{M&O-S=wMfHL-rs_Nb#?^iYl4#>)qb4B;&*)qUviS2s>xEwcwsLJWpKQp0!jwW)~_ z?_AnSnPd%^4<#HA$G$0$4vMagbk_2m?z=A2qH4JsjYW}75$@n<(IWXC&R#|_^QwOF z;`HT(s-C=7ud3(g)su_YJ9Oy8V=^iGNPCBe7_|DwYn$QpMoyu}we$TKkfpj;KdN86 z#vUBjFHUNWhB`bwS5-xDZ2K>ds^{wL<@woZqlTW|k-00LKg6Vgb5$Fzs!(hwNdG>G z+7SXTIycO>m^?ZTUz=ME8A$dWAC9Jsb*F=4VgR|z;fw;f^|_FE^;yz++yd!l2}$2_!{bzGTtebds&SNyC&3Jkf55o3jl#!t~YES$AV}f*9z3NP&OaDbQnG91Mp<77r zS+_k*7wJY*aNgvc#}4>#79erX!6R}X6O%#Ld?RAfB+`d~DQ;EP^Yh;_Y#(tff|%(w|{WT@6e1$}dL?;w7lZAYgM zMQ;P2-B>RO)Rs19f4Ke_s>)Z^;Q3?tFPRB<80i1TW`V~nK+454hF7(ZevofA2jNXK z?DxXB*@V6j>KKC4#?9%DjQgrZYQ*vUOsGbqtB9uWLqsz~6v7pcAjDw+VQmPaF8Pd6 z`uL1cRNcW;L-SFy9PrcTl%P;81msnxc^RRp)#OIO7mebGBlKnqZSH?tD}IEh???UF zAZqd`Ox1h(;^IXz_#>%1w86V=U#tI4y42;N(!JD!GDUFI)~t(7j@~yZoTx#RgzpGa zt$(AqNTAj0Tib8ZX94ZOQXjOjGXN?W ziN?BZg@ORu zksE`4NFa9Zm=Km-B8k-Ct==TNT!|kAe=_y>XGD9$%_nupGT6KtWhN`dx&r_Vz`#SCO0R{g=T?m($dqyBF#Q&j92sm0oDa##yiu1f~Is@Inqiy zw5Ge*YBp))?q<@nMwXnnMm(1BNsGmSth6K9?KrHC&pq4-g_ zhnoS_FRT-Pmzl{k9`deQ-_g$x_o}b~+@Sa^Fq(sC&>r99=`8~>=W6>u9OR1HDb2ho z6c)7b=!Zt*KcCkwfH_+kh+74fT#jG{q0*hXxgl$#{-3q&O(;NbkGIbM;-G%ogc6?D zGR6nCM0a?68R@1^d=S!<3H}|u=C*d^iI&@Tlk$%3A-T5P;Et~wjbeE{vfx!9V*2Yo=%T`6U?E`6mwoNkM1;P=0-9T?>EMO#*nGXu$ zAZZ7;kf>GwoDoys&V7p9AK2Do;MCd=%|`7)^FFUYDh@?ITN=9sMS^Eu4H zD927wdR^qdO02Vjx_1wH4N_8jFitNs?j$clmB061#*y10E07=3@-vL1h1bF+{bpe& zT}m0Irr(-V7>M_q;*R@%I%+qgR=d+{gJjXpCvtOZHw(_ZUtFOo!UV#mB=Hlqf82n> z#gC^)?A(5I@>69MI5d_Pbp&IX;E6Ht91Mnx17^!%4UB0lLKbi7KOVDH4wbE>C|YYq zN^+%o^?>1{fx7(1Fbi7V#lbV=y~}03*?gK|Gl(EB-Hy?SNosAYkVwRCC+*u~D>Cad#9(kNZ*Fqmeb(!=*d>$|Uqsa~n zsbnI~11S*`kX&(DqfjtZmm@Oq$6(fc>XMQf%O0o)_tbX#>Z-L4-|cdPbp*Q??Kd(( zQm@`?GuRgvwv1zWtXI3cF5z2WIij9)!kqlN6^06zt^Z!PlHd`E416G>kwdd&b$EQS z3ELd}v&H{B^u~v}S=-y6j;f9QH{DA4pizND^@F$ArTd%rHH-jkH1m^f-7eX~+a-H^ zUyHpk;Eb=5fLH&hyGTZ1kd>Jje0ii8;XD+>BK99!)>W8*`<45GsgCWNpX||n267k7 zd}+t&4`fIOb1(H(9cJmV#>i(&^~4A`e02eDv4LKJ&Mm0dd9$5ajuR?&Q8{`5K@yrFh=W&@e#pK)OPj=W zpzy@JF@Lf!~KsH}qIUH&*#B0x?84CDDkOm}Kl1adRUFD$_1r#^E3QR#j z6mtubL;CFsf)QL#4#sDUY9HsAv|(;Rqw67I5p{TAk7(8x7X)>0yg?YO&u@^XVCTrD z!xrkTll4JGIdNm#Ah8^${DSCGJb8$t$d;U!uD9I7;WH4;*ZmeP;5z~76zi1BPFd-)YCm2i%aV&uHYpO2zIpRzXn@PAC#e8k*yzp{ zb~1w0K$9f`M52(%i^@7mmUWwQ=9KkAR=cu`GB*|I&X!fy;q%0J5fItZy)1j|lQf~n ze$)qf5tq%9vYd7uT+F2jpuWBPuA$h{vi9bd)#*)0y>a92HKx?XE5|I4%*Eqrl8t-> zEvg(ePO8UmHoa|1LaWR5;qpjr|4jI;7w)2rB59-8s(N{1tmuPymqK5lxa%rUM7+Fy=G2evUiQ+Mv7HQ zqXywHyu^^Uu#VCH+U)i5yt4Lxx;RXh6}8J4R2N8-rjP`e3|^R|bu24M4N%qyv3YJ% z1+v%sygnW@&QmjJ)*u{`(RzppmfGaaYgSq7w=ZjbQCa7;{lnu#S+dc%@?qv*vaHjy zi~S_SVx`ROh|3-Oy`vve+bZj&7wq$M$~uBhCbuu?_ z{Ea8GpkHSp>}PP$_6s824b5QVqI#Za5iuI#p}eQ#RSZ)IDrT+lkR0`k^Sx@48h9-` zU?js-@#(VggznGZC!OA~EG?ibxvTU>icM=p?C(Tzd(sls77yrhhRHoSu1 z95T5@Ii5BI$~n6@KWKOb0bvu~l8eO+$4CrYxIr?YEogy|mblR03AERNKI5cp%mYFd z9OD$>MotKHxJWEGB3ld?XcC02Z1r^zjtS8T=`fSWskAx!Z-H->hbGFS9a5zB&?cE4XF(m|j4~lP_^- zex(;QWER$)URd5mP6nvlSusuN^x}4J42RRG%tpcY;b0csr|Fpu-wj9C!;I;fhSOQh zm1)RQIXCsA_t4u^4(9@vhJkT0adq?ru^R>O+Ic#swKn4MBU~2dhotJu6C`Z4{u2~X z$e3a1ci4ud*o&vVcC2rc{WPOt7uSb=$qGh49Z*Ou7I89}<$X@jY=crB7*c-~}AwPpG55mc1 z!3k>P*~_Z64~K_`HO&-H(Ea>iKQDfQ&l-L{Xw>kzdT{~Y&rk6C z0X#tp!F)x`U7^o)`rM$;hxGZ_et&pal&T&nReD~7kH%R8KF`lCu=pS8^Y9Qq_s zmue?x@blTxVQSyRBC&=Fb+|$uuDBhp(&r<2BCUW9?^jQ-jM_02{E}+he+exr)erG| z{W*P})91yWG0Q2{Up92TRA%LIY7DYIx!!f?edz$pY@9Y|aPj-Am-xB&`V5~?7i$-| zqt_bJ`})aQQe-f_ck8L_r)s9&SNQFoZUs(vqlzDgI1{A?j=_EdhxqugiZ!472Ygod zf53^T9R*^LRBF7+Xvg9OaOkKVaqPgPmnlprc~|p zBCGq`3#;AKRXu`^P%$vGNOnl!F!>uqh@0?vQvJa;%KWtK$9l>>?>BB?(d_>gzh-!I6wN%$^U5~bPU5~P-gm0>z(r2DNzoXB; zNmY-im?{F!{|Ei^6@7lgqeY(tNTRgFEZrjRQ=>B1`IEZ1PIawQy&Kf6s-CTF z>K0GLsxvA7`~RXm;!MvL)wO=;%t|erRvu|Sxb4rDDY8hP-_mE3KA+L&Uv#%<>Z=a1 zt@Aw5lPzk(2G5_a>fsud?^m_()1~*vYuP=?r&ODHCt6kpDp@q(QhuRN zK1%Zy|A0RE{5Yb|vD9_Qb}&W6$*n zQt_Ka1)DVgo4kl=$~I}rHfhQ>O;yyZ7gS8$Cph@~-~XSCLFKwOiQG3G+3PXY^_aIY z-X(n+JfLoUq>}!fK7XK3k~Y;beUe0|NXS)Zx?40}n>0b2+(nwWO@2;Oxk)Q)ORua0 z>ehcyG3V)S{eLqEMhJrjZ)@G@7H^sK{4tXRcU04Rjk@)-Qxpl7iez{7l0JW=PnO+& z(p6C>4ypJpDsqd)Zi_b(e$HfLs-kYareglnn-uES|8*`AZqYn#(GVUw$?`3?Hqq|Yt-+@{ZmQq>0UAv9haG>#k8xee;v26b+OI=5k}qHgi}dYoeB z|NH+ww_6)Tgd3?&JkD6m!N;Az2A4#=2*)T)xZSBd!@03DWIUQp+EGz{F=zmzP4wNs zo3f@B`V5)`-Q__5+&AcC!u9$q4iHT4Y!$xm5dpn=TvM< zV$&KtL$3cFp2-VzP`P-edqu2 zC;WYl@E&obXlBVP0;W8gM%MWw<_jE{e&PagA1&)yRT~FibHLkZGDQ&o@bYpJU7~e_ zyhljyD|Cl2WL6HoHrV!1WN#A6wNuC_u%lsjMrH=cd)`ISm}CDC_k^ry?qoquVvdb? zGe8^>6NQfq4P&UttqSp0Bw#?>MDydD$6VOyuj5jxSGzgdKypR( z{Pf~_`Z6x5H;PR}oXYY))FD1zQ)jT)7m@dE3qEN@iSC@#wg^VAuX4Eb_F z$IauHM;G<8>cxvD+F0(_n)ux>Eu*AUzF zWE?v!7(!^L-`$*Ueqt29;&x}h{x-0BTiX@^jy4v5yniK>(; zYwMfpn`rnRr~jmST>EI7nbn2AH|x9m`?p){{~DU{3qXJu@BbScTicc7{$E+!TD#l- z|AfEQY`@G+@~7NV`&W34JsRVMd^j2XI_n8W{3imNW?_V4*5UM)AfZp&ghjLzi*zp1 zsgE*hUGZMNtRFPb&TEJDpA>CYIrGka<){0$Q_5u)(LAc1sJsAixGxHX$Z7H%SAX(y zq{{eCIoIdFjjP9vCf&aymkk0kCK)tA0GUL;=2_2xhd_@BR8fJ<>#*Ty`9 z<}^eIoX%kCJr$>ySnDq4yhPKnrcPn-p$1b1Jj9}#Ea2p6SD}6KsNT3}{#ZM2fK1U~ z_#}-Yie>10!%@@PzF?UK)$uExWHKAlizK?0U^Ln`Ao8Mav?&VCgohEu5ToR=gnq$M zx*rYbblVvb5`xo9DAaa$MdLXT-UN+3zbrjt%NcmokB0cBAb>fjI6ymx*Cs?Nhf91CXt{?z6M(Kq3OC*dxC}_aT z?`+qi4+NN{1jxo6ov-xp;0QAwf}R7|@TZf}jSRnmGoVwt&@#hHf&fSmu9&N+T%{Th zDnYi6n%({^zA7rC!$9%5iDsIyN9=0?dP=Xa!`_tAUJ&uJbi%pAK`o`>k8g%; zEW%C|YK0*AOBmbcLA_DkJ3{`jcV0bz-8`%w9qm>3e-Oxw#01{Er@Zd-Sn~kf;~zzr zCj9ZxvoUdoTXT~IGn;M)EgvYsJk4|61yjfESAl5yNV$x=<+uqa?f6P*=FVq@g7Lz6 zpvKsIdWth8>+wN;j4>h+{p_X)b>qod%~K0hR=6H#$x zty$LuK!NY@ttiXHU7`Zj>#ti7`+EakxL7E!Peke&3Y06AErr6?8pHoOISl_Ug-HRF z8F?2c^_RqoGh|qxGrSddcy&A9MYwm8@nCZ{>oL#48vM57D`&{PEW%oV#lu)8_Ve#F z^QQtBPb^sRvO^|;Oyqzvyi&X*3<=bgVFGap1RfY6I4B~ltmqDO4n>7NQQyWt4;lIv zn!uQcBquSht&EAlLw|&E)3e~!Ofg}K%9nZKTv3LI8fQm1F)Ws)!&w$)aUnlFcE%vP?FPY$+*&5)9t< zr)>%=8M~LaT`bxd)TitWDr;+i$#F1QO&)lx_jAs*rcurHJr>W!yn-g96nBP4MpDbl zlHO+b&ui6-8Wv>NL3;J17O_vARCXelMP>3EvXUM+Dv?IOUz8b{KV}U)QX1#SZ|UL6 zs8Ls_t67r%Qm4PnO20&y{=6Og)*JSMIpwwadHc8S+?*|3-DVG;*R#8 z_2rWbPDIv5FDw%HV^jPzWUHl<1b?;r&n@^;f(1?oV=paQc1!315oM@skOe#zcFSWN znv#E#SW2g$PmoG)dD!z3;Xx03D0D>7+L;*$1CC(Xe)wc}EQ7lLbYgpGm|F-kttYzmwQ%qw8BzQTCQ}i#4CQ!(oRO zlF@k$^~43s+@=mmO_q=pbhALmwG=yn{yGOD=zKa^n&z^L`m~e9yfeidw({w-E+X}y ziGDInfSK~@BH2YkYlsZ!31G-G1PS|A48Yw`J<&32ceC3Yt*g{<&sFH87M`A5O*oiB z02guXJ&@n`e_o^Gj&xX-9WS|C4Lt`vfzjvT37lvoxRfZ801KfMK4R&}OXlpshnJtv ze)Xu|?x2s-2}i;p@dUr7-g7(*dQW}3HA{wmESWA$VOb>nVia{VI5JWA;+7L7c^wO! zWW*Igh&$)>PV@)|r^Va|bA);8#ikvELb(ZMNtk_uBw9`~z>60+X8~c@r;sbArHx;9 zbQqpVG}XNHHp}v$cGhr~r5jym60xYdh^3maG?dW;$e%O$a}wrthkQ!FN0QHLV!8my zUwXz-zn?jwg}6+9%k%SQ?d{S{H1NhDxu#Q`R48iEl1?(t70ZLaSe%;6MeSVa7AB%1 z{2m(gg_4diTvSCnJk}R&n8)5`<+>_^fTs2R(3fVcB8Y&y9j5!ha@|k4-AGBozrVDb zJvYCXOp9RYjtI-p)`>!RoOJX7`muvgDKL|Mia)f_vUa=qO3I*ta6Z)YWUB&s5}|C- z8{BTXtfFU1hkEv5Hj9ioF#BHH-PBPPed-FlK*2VBAN6-xf97tgVndG6g%l4pUcrcp zhFgLi#jt8TQuid}v*>5aPtmva-^;iN$rMmsG^h>zG7qEff{l4uBnScmKpUw!>TxQ^c)vrEaWaa4<2JRb1 zZq+Mh1=@H9PJxB&6cX{ktC<6mN&3ns9fUK96^RonYmKH?BvHf&Ey)f$6nm& zUG}E=2cqv9bEFSa!y}C?sDqB}d_`HhZ;cl;@t7eV<6T<8HCw;~1FK#2_@s9nVkwho zFnS*`qJ}V?_tB&^it*UE<8Mr(CLH&ouzf}Mpip}}PbST{dE&)pqNq;IBdjw2KuTf?Bx_UI|Gh^TDdh7MjN3;O&=TS9nx zVG}Y-Jg%;Y#uLG|OUd$~u`-yyDor|MYKCl;Bliduz&YZHt|nBRTkFv%-YRja-tbaeFKCg)sg{EjIsHlmF4lcx z37|7#q#u-5-Tu%H1VoeE(s_e%tNY|`$zm~^KXIHA2Edi3}cm=kH=F{G*Zx>0Mxm^2wI%Gn3qoNv{LC#oCv`W!u(JB;+> zG$0+cF;SQ<3*qKuxoh(vQ%uqjGoUL)cfMj{ftFC|@Op8?9OZ~q^Cpt!@i(1HeY8!; zkh$z0Y3hPn{N@3xouJ5PjgIJM4BzGx@_00yF0@P|sVkkQX~a60X2lkcRu0;&$%Q@n zw{UBdqd^3^Si;IyCf`o<5+Y2R?{RBQGxadIHg%R7T}n)uo#`ThAV(@j+clshcP;2R z#S?RoF_sP73NtwROfx}&zk)K2Gt~NK03Sa{JlEQ0_l9_xIgnF?IZGwZQEQ&o+g`1@ zdFXZOwsRs!^+q^ESl9Md#JH?x3*cx$SZeY>;T+~^e}xKC`)W!jzyW+GHwc#xk{tD& zE}hCC^@US)9p0cc<2h3fFDaJ|508^br(g4kg+O{!c0&DrMYUj)Z^Q~vrws57ImV67FJ~op! z65{(_H70_hWn0iDW;wjoQ^jJV;%ybe3W+@U{3drqW;;Nhr~Ow>PEXK;1dsfCFAvG# zWn&YKWO=Hc*V9h)Q3O`sY|XlFQkA`RiA*OmbfzB=sm0B2 zXHUMJHBsq}vzKbw{Nqb9y|i+N8B})5N|m>YnVNqghN;b#mRf@;mBXToF>gOJ+e&2i z6zqe!3=ky}7n0y=CA<9QTK~Mbq1Z@zWEK;@yY4OQV#aEC{m7hf58Ti zHP>YlO0^{q+C3Pi{*9Uqd%w;c%$DA;O&I(b)(lP@{a$+-?_g1=y5wjvt*Ae`#&(3N z6~@u_W(k!t2y`(Chn>+tZj;Ko0q*#5D^QmQ4PpEdY}52QiiTR_Hi`NXMh;+;ybQ5Z zOE5B|xvVrijw<)+YHR%Z{c-L#LhjBNifB77Mpc^4{_%KK%l7{P!9RU2@)Q4k&i=o( zeuw|?XZ(Gw&I$Qx4wq`($Px=Ib`a2nMGRuPpTa};d`b~@~R7(`D{he8pgC7MMa6)vP)u}D>6A7i0Q*`p!kb;b{apG`&>7k!}b zZ7diT^!wzrv0ptwFs!}Vl%tK>t91>Yg{(OQej!Zm3bJBw3up{Rih#VxV3R@Gfn83p zy{!l}POyWG)Tq;e!X^>jQnVx|j2t(eqJM||7!j@7?I`M$0}n+AIOAcX`La=cUdv^@ zK-O71+0S}M;6Ir!316soa&i8;i5?(}-eU!e-Z%DN)UX8T)iI4S?^;A9V~haapt6-5f1Q|&9}UBT!AMp}3G}mh^<7^NO)XePRuu-*%j0~1EdO7&|BvD?L4M-D zCHw#8!-vWJzw&T{*A0h-fA{ex& zSi8*tN4)GI=Oge!*thyOnXpn@YA=kZy>O`ZFmSn#B_%8c;hF3+3<5NobQra13G7q~ zVk(ENMzkmAHo6DP3In?VZ)9KsG(|)$yC~`MY(=`Owop^3f2@7z`ad6S71H2?e@uida8L}NY-L_-bOfC=J0UdcR&<>fGTFH>#qv1`HAAAu+$cAt0zEb6;_ zKV;E^)>t&ZXuZ?cMqi{i0BK=5>Wp0DEhuG|@6#!6IAZKlOspnw4M>NY1?OqL+bOJW zA>?nM4G*YA_-`UF#w0^;(NVKKp5>!)=^3S@(h3fmiEb2MgV5P_*H}n6End_2BHw){ z9ebuKYit&wefh`?riCird}2@v&=JDU%;Pj+E#{u3JbVodLhu&;;aw_V^}$4<^2ahK_3=DlJq;_t3V5ROl){E)<>bY&Rn2 zP=>6><@hFMlUym84N1y&kkJ5UTpmv7M@%+U{#dW9_;dK(k~wq>=T>m@WkhI4!^?|p4ST}~b@?Eqf2Vsg zWZPD4e!-1S+{77UALK(gJq}lRLf7a6ib00!J=T}$F0tt0@fIsS`WQH=J|_9w<#@W7 zwXJ=q)r`#q^DS(lWOH~Gvm%gP6Hi>`q;AKYM%`{qzI#v_Pn64LHs`P^WBC7R?B^EC zoZF-ChFV#d`z2$tdb?%rWph{grnAaFbCJs$$EkIfx5Hcv5A3-M38=Vd*U=}hAj$q2 z3&>p!@>M4!a zq5-E=z=L+xJW&G)8z~FcR6PD}2rDZt4GY;!gXOnHn1FAr)5Hn6DwI7l)2-;#X01>@B04LcOpl)`F5qr*k4Fci6L}1;d%ZmkH#j;KJ(ZF|5Mo z!DtY-ufFdFsU&G{z_L~GNRN%wj(NUpM zPA#54DkY>N2dTQJ&R9b0>Rr4AVXNGySJUbE$?EF$^>z7jI4h4Pm#cj)C0>0dp`Y~z z35&roiQ!*z+h0RLEbgIJ`>;0|5Pj5#Fs=F^CxQgXSd} zo;WeavCGe2)(`Swu~lprJ8Q*GrPx_7b~cKg&0=S(*x4?29v0NkK|XH_z~8_92Bcr0 zI8WVfQRVT+vuEm2`cY*&{cL^HKKmJFH{Wv8w30gbq`n%!faA zNGf}IQr|y4sF5THQYAYeJ2n)wF8^tTwLjo*iTrmtp8nDIKbz|hx3<#q-}asS_hEKSHypt&Z=SY;aS!t{4!}?LJd3t!* zs9iMo>K6^Qy%{)nm$)Q9*LSf(GSmS7f02`MWeQVVTjm&tW>jpnqT`+ zSua-BK;WimH)N0(#`*%8Oyelht@s|Ibjy|bb)i#iq8WU6?)UC>7KSdaE2=2A(6 zo>_FG@t;tXTQWcK8oyask*0fXl`hOLTp9^0Io2p$>hPqj4o0n3to|ML^@Gwp*$yAG;)i;P8!>#Gu{F@LHc*J7>UF=zU4X7|5`hu_$&mwR#5*1 z{XHrO78d}3K!3jtbuVs?2dznyfN%1JCmEoT!L1XlbX@14{1P=el+Y=gds98X}} zQGg@b2%-4PuzjQ8g%<^TE*(_Rw)YGRM_WiN8xFA+yo+YyN2yW_9?8TIul+Dm?4{s` zRSN33ad6sDI2Iw+DhLonFvz+v2QNX97NAnfx?WJHL)Qow-{UPiUa^y;iBeq>8_ypw z?sgNq{Qy2}g!m%o#(V#w(>Af$L6>Gq?#ID#lI8tv1rnE@nfHXiOWkflXPS-r^ONeu z%X0!_cf-=#0`J|U81?RDHlaCVv1S11_EN5HpayY)#$!27RP(ff2A54zU7TIWovrR= zC3WFzuPpOkJ17U!;O8o3tZIeF>HGE~8KYww+TwU4U|jBA z{LXB7Wi-g=Gs-)+iH}O-Nn{(ii9a{WpQ~TfS~gjtdP5G9l)>gPObQm$qwU(MP^;N! zZqi0rPTY?3lBej6SyA1i)CQGe(smXzvzyhlm5WsGAX=|!X8dLAfI|88TOo3AZ75*o zkJum_uF;ZRWFixbTgdYJZYPUdYkHVVQiH~6e6nYVp2eMN*eNECiwJjYi%FB{n8_?hEoBgsoXhvV!ZG?dXBPA_yWQ9`Bi3W@@Y`%V zLul%#+l73_su7At13sI~UClVckN_vttq&WjCl81{at#xUs!^)}PpW~C^ppYKoHb^$ zE4BrrjJivDQwdh2UTmITFI@|QByW>@j&2o@$PfKl=Q1jb`jD*NL~3AEvaqvyJ?Tv& zLq_D)ZgvNhlscUfcDX~_I-WPCy}mj^Jr8Z%A7oos2-_5wDZj3aZ1!d`dm++A1fRU< zxztY?(58<^p4{E8BVh<6u0X;TFoJN{22p3lARE~cMBC@Q9;thH7=R}>vhAt`aw!e~ zPS5q#s2|x(P?Pv$^WhvwbtIc4X+zI0j1G7_o6bFgjp8y>nAFuz4hk z$7dI{m|Vf>S{$*<(bpUM$cF*g!m)|2I53IWPYydo`g^FGJtuEQv-=a8^yn-1sHI2q z2BeZXgREHuKD&aKc%g_th!r^bp)OZ%f?)N#33VK#EarrJxX?G9xwb+=&b~ z7SEP<1kKNNJOk`E9PXUf6(o`f)#YD8*qqNSL$ zP{fI_SXW%4gIk5o*h#g+t_d32xvPOE1s8)QBP33KUX&$5)Z3f>9t#6kevd`WBN2D^ zh@n+G9XJpg4M4*0c9G<3+v_bAf2F|CnI6(O3=!F_-^VrT6hJnPc<=*J@O$p>_bm_( z%u2~vD7e;Xp>%sgzJwx)s5dPqSBqW($>k!mkhP(jm7?>)_Z@noiB!KRFy@KSs+L-9 zih`kBT7YvX7v6bNFV<&sdIU_|n9^re=8z~Bkwv10MyXGp!V60heHVy?sPKwuA9AJ& zXOQ?@O7-=ngz2BdLZ2|57GOcpGN0i)@5dNw5{Zo2Fn5+H>3d@Al%BdUH|1QSC*_p_4VF33aFTdXX8)l=}p5$0f)IOdJj)eLx$UBZHH) zOqM5|s2k4uQ)(a_iY&;tjeIz17s(T{jdH0aW%L&Lip%wcI7TCXz$+zt!3h*kAE^`Pcz1RYFnr8KH+W~DELNx6E|>&a+% z3FpV0Iyh_-dNj?4aj<~k@l$=tDAp7#JI3nWMhWcVSX4%X^~9Qs-7Q}gQ<1JwtKCx_XdgOv-Kr)BoeBfQY7`S*^2}bNE!Z)KT4fxiO?*~Z?ByAp*4b=C-YItpb z8tJa3DL0&|Y(bK)m~a5vqsauFK3SXQ4ndmK=E$VjOS!K!{IZZFI%W#~dF6&RbuJN> zwR6`ebogJf$Ff1tR-D=)^a%#H2$q2yf#%bRD8>G2)RXFD65bf@mttAiG$QoukzH^a znv-MBTqJm2cHZRS1Z|IQgcWDcoAfrbzn?yR{BkUZ{uMoM^T+;Gq>rsdoL#(5Mguz> zX%{h6gial-04j}1=xjvc1di);Ut&Z|M_P)FxWp2jNPu*Bne+yz#j%MgN$4aA`v|Rw zSM`ZRT2-QDQLWbJyMnoz0=fG_b1nxf8zeuh6B|mEcY9I4W6nP`Sut9X4e_=Xg-Gaa zdlHR92CiWN)JTG;+6%mKa>c!|k@obHke(#fbVmFmfwgJwV9mK&%XFc4PT9%YSjKd0 zcD5D&bx5zxP*W-{i0`tRXyWdoQ17 z+y-#Tj-)nMa8oJa&FlBvRGHn^ka#ArLRQIso_PZ+_5U6t>Q$H=TdwC%8dSgQOU71@ zz^w+AQ9@@i3ch+=`Ph_IbSm}jhFL}+ncIukQvQ>MGS!78qnYmVt;Us<@3$S+Wa3X6 z)kNmM%b+GZuw+bA{Y?$2>wdyj;Fd>^iYoLUeA;lCY*_>4&ZvWOut?48&a2H5F39pp z&CM*rZTSr2R`fJzv*eaU6~oF|bX54=hI3AX zmyG8E@pr+1E)skfj_PuW`4fkBL4m*X_%3Stl0jbB>zz*&JG>jhFB36PJ_do<6)bdQ zF=Jh-mAnLA`u7nyOqX3ooi$`(Quh6lv8rYqNB*v3 z8DB=LGO*uNR;)KDeeSRq69kG*=RiUV`ixWJmt7|RzIO`?tbVPv@9%!EkZCfE1B39O;awjH+NK%)lexbw>;cY zg{-K!7aHXf4~ecr?5G#jsfSaF%qo-Zt&Q2;CzO^hOf+0*!Z~Wa?~P_L1rCtA@9wOx z+F@)JvtQX+L35l$$0$A*YU132@n%U3RKkuxak&l`Wi%fXkJ7M99+BvGQKmXwx=Y+g zTbeXlNBcx0xZy>#dFo$B``K5#3u#D~*Juk53d)v%!#KAHcSUA-4q!r~fAk-jU%Sqo zHb$0*!Nlvi4##n5g&k%(dOj>Q|Oz0d7X@ z|6;czduixOh3JaY8*(aaBJO=&q18B^aoDvh_G^8ITgw9w4IapbM9;$E4f=+rvg3Y> z-4ru4_M^oy5#VjKesgoo-=7_^Ba>ubkwGm!OAdRH9FAxpslm`zG-Lhr$@l~20$b+x zf8ks#9~>_^_DBzS_%0e2d8(!odmtps8G9PXU}lbLmzgj#9xHtrwu1vhOvXl9^q5TE zjvS1t9XTF4QtiWf!_=-apIE+Tz&s1;H?p$fUpvq^`OF;`9t!Vz!wiNu5CN{$C&99&@0!Lep$R|Xf(|B1oKHD6p??*X zxOz&uiJ)9+?h)~rV7)ig_plqnsexf$$xMta&Q`U%g(vxodlE%3C!1Y7+9Mo6+Bi-* zz9bGVCuFrUfxgW#ptRgR^*N}t8CGf8vZ^;y#+C=8_EAX=LbhlsqYlCwMjv)d8Ylac zplLZuuP4SU#_bfLl4ctvT~FdQ?sjtLM7zB*mTN>&A{omoBiAJ^9$n`?^yj<16{|P^ z4&#Ie;8%`@R^<&u5gCTY=n!bjLbpIyQJcVdCJb92wV59Y+_DQQ>*q{i(*`!udP2~a zMrljRrZ&QG>s?Y}QaL0=Ms!GIeMiYjew!8`v@|y(NoPZE1c*iZGwhLq%yy!X@8-px zyaoQxAC3RGUD?>o!2h|6|MX}4-QoY-;s4y>|NN==KRV(n+1gq-ApRLFL+#0ok|J?V z>;t0yoDbfZaKJ~1g2P1#utkJpVB@i-;Q|Q!erwAl!CqK*TJ*yWymv{BMWx60bEMKNjS~$Bz?< z7w835C55Z$SaEBNO?K?nCu>*QoJ8+?xLDn1j>&JvW4f*Ki-@BMP<6#sq4Mp7`^3{P zx-XKZ4M|O`|H=VrJEr89@I^-;1X}gLYnGPS$~tD%aVG${x*dM zt}Gn5qf+0=o?NL{=Z?K;o-lqy2Sq-OAM?bU8{M=gn-AT`MnG=HvIRb=Y%gtSvMr06 zjO}#hFGDu>Cz!*%I&+bnY*&nRpId3zJ#x7t<~Df61^aYbg`s!fJX}|++8EbOS6DuW zLOG1piyI+~yS|IYZI`@B#knIUSJy}}&JMhyAdwb~CdLv5;f+Sn0v|3)Xsmb9XOnZBOT&?`XW>nNFsE1)FX~GbFVqaa0{?rTZSMY-|1CNH zi?I3Vi|SZ<{@+TT|JTyy*7M!oTe%-o(1YF<9yQ*VC$8}vC;_}QV)8GZKE&wqRC zq?jarj}yPUiQkur-*Mvid;Y!0S1NR)@`sJ)L9MZWUZ+6Tf5d>2b_w^7BGAl)lq*Cp zsW7s|6r>3g65%57c?Sejp*u8(YNsiY0(m=ENO5#IAl#up>vxWv?%xx%*T5>g- zj{CDqH5;4w>RcL2=kO3~>qPx%N=maoY$ha{_#eZN&XAmdmV;`?iGD|+?a+U!>?Z02 z2iV(aS-M#u+v@x<4G*({6lUbt4kPy|ON)tc3d~<3Hlz zsNf}!gT~FUO&DYd?~2!?a! z`0VHp*=jCEFct`+gBy3E^SvR$;)d5^%QFZsBiQfjXLf%I-?KeQZ*Uou&&~pC3^tlg z$Fr$I_}dsSmapi9iMC!2*QYE5mfJ>Gi!kTQi6_3%kWZAh_^ z`ng+|96xu@waX(C9UZqd6_S-K-wQwnyq#F3aFP?u#Gpzb`2={yK!?#0oYe8o+wXdj zG}zIHa4_yuqHf%V0hn?J=!aAEs)2=8@hA==UGh*XqlQ7pLcc2$LsTAB3njxQx^_ z+HJ*gG-#pm^xlm+3#XGF5Xycy>ys}n(G<@7LDWLT>+xjt3+$3*A{!vq#QBd17X8NL zf{n1(_OB+u+DBt3<;QR``gPV*Puu2M`8_}T9u3Ch_ieuUBcL{v-(w!*+Uen)KHz`g z-|f!-Ulsyr@%evaYisRc>ioaCc6a~(XZ&#lyT)h+(##WcA(|50mC%70eHjA*bN!95 zExlpb=e-bisD6)e%p6;SHrWzvQq;Pw46c%yd`tb%yBWn-J@qo`gmaP{g_9UM(VvDh zj@rlFdfvke>ClhiKv)AQnGN;7jFrvcmhfKG#)*{drqM@Pm+qt==r9U#S)I}?JR$U> zyg@MFwDnr?Mq_57xNA>-+$hL`@{mo8=-?}|OTQ_Fe=BwVR_ecnukYVFr$#O?j9MHH zu(Y;OTCY&U-iP#Poir2MI-cQzcrqD5UNQo@WJQ?CibRtYA0{(8VRpos`Qd5czd_iZ zj56ZcWQ4hC@i2g|tMU!L zzFB*VcOW|Ld98Xt_a!TpwRIaqgcqInj^lBfj_4#)MA-;E0y&}w!GR={g@v=GLc4D>CbW6-jHSLUb07pY-Ekjw(XO;hkJ?i-?EC1qxi{=hvC;U0S}C2t zpisG@dq;!y>6e{RtY5;{#LHIP(J$d^;$=MQhro?>0{NLp1k3pYS}N&O`ggJwp{)tO zCtkzC)oi6`!BW3PpygG!WideUy)w(yynC6zu4)AxBpbWZVZ4L^8zO`~Eo%>Qd(ahD#r1Nwo4>wrUF6m_NwaO*^3R*Ubt$OENpq``dXc8^Z z?4%2dRs6YHA~@cW1%vMz%=l3rXMy2unh{jO6=lGS%KVfB#Czo77#0+#(`M`s#)y%< z_F>HhK?+u`uTTWcKgfUg-MGLW{geXbBoHZ0_FmipnQ;mU$B3%Wo|+GA<95~k@qM=g z#sL?5W0NO8{$8sE=OA0(Y*k&#NL|U(tGQ* zU>@V5Nj!zaxqaluk!a1jI1ct?=X2G4)K2FtAT+-I+u!iEAJJFf7jJ{PLJFUk z9Iu|^;vFbyG3g#;1P}q98d$bYpLyF8-GGDIk0^-b3Rx9kCJJmJ`7nUWtecgRMwEOz z;om$Y!e|c@$cAf!#u;DYzloQ+Wx5AIGJ~f4$h-4|aC@tSxQrckyOwMVUQ+I=47%0b zz&2q7v|Su#_@XP<-fRcG3AN=rGp^sMpV$0h0tquM;=@99g-IL8hC(# zw#qCNWW)*Nix{+Ea=0`1I35ZU(`XVP4~eAkQbYS__AO{Td0VV@GQ5l zCV3~<{nCAdU~LlevKtcWkxiPz?=VE0%vr_zPU=IEhcGd;1Y&lJoHGO^@$=I)5pR=W z#@e_d{dQhG?h%@G;l>z_hcK&3&l3&DbrAN3WMvdiF571K;K%#IZ-I`2_6xM8sD?mS zV_}bw01^Xbfjl_c)ec%+99^m^X|LqiT}{#FYmD}W&ROLeC6rw{up5!gRaRMT|* zz5g{@{4apXv4~-658kkQM29;blha42cPj*+tsf4TskWar1C8N#Y&$f_2{E zB9W}JO!S+gIrT%wbI6WxV|d{-jkg6m`glSmOz{RRhcWGvMtvp=7k1hn-;7h<1fS24 zEO^7Thfw(8&4p%bD=R|la4g?3VV20x6jq>miV+QQsq+aZb+9#p6DH@Dz-cSbs}~2a z=$yd{#5-!IhuF0Ex;JfKn^|cj$)Y!FWrQAipxwj zWKyX@FBMNuDpAKv#9EcCbTOw(=ta`$ zhUs)`S?Ok8y{yIY(}@W+7iWpbp&le30c1L=?;RXBt7rA*{^{ut^_r|K(+ngS5WM&| z`qIL)W;`2@fwb~#1-m@wCaPE@CN3OOjwi4`{hBvAGU7D&e{yZjbLVL2ar4zbd63;F z-2K8FEs?b@K>!l2bJmM{Xz-4k^B|gLsf@UlvZ^)mIP6_`qQ6m>kns&J=(jd%vb%WE z{|ixSiG#IEvWU&gY)vc%G;eqE}o;Fq%=qZyv z7&8Pj>f|Y9K_by9N7%zcm0v1GpF6KTS6aSz0?;|biu+&G;X8}JFsr5gbAmTwuti_I zXdYL8q9LQuWKr11H>SCijv}ezUYCv5pmH^|T*L@^PyDtsdQMh2J-0`M&|n1uI!NHp zX6vSj4bO8Uh~;x!FG&kD?bC3UoV;hY2IphM! z?g5Xr*Re6vOJGT83Lz)WQ6E+OV&;hjh(ByB_Bfqh2MJL7hS*khW_XchjKrvRebS~u zp?GnL&B0*ru#7^on2aC{1`Hy%jSrBS8V6_WovCyV$vUNo8!pGu5{Ml8?VSzHtjO1t zh}LD|y{8e>vs~n(hMsIXS)qN0SyiXa^Mliqqt~Vf-HsbsR6;k-rE=uKoz80NdQ_u$ z2^^ETjMH|aG!^Kj!h#A{o#1lRfC&>XS3u@`Xzppd$A?^JDvB;%gGhd6W%w*ororQU zhST9oot+-c<9(=($IQx&t!i4Ji)EHLG4dPls@Xi1N~6UAtH5v?w0T?@zv@t z8U#i6&8;<^R$|`3VzFI;9E=;1%KI^3>BD3mgtSh!jq#}eKGFeyB0b|wS1UMo?HxY4(7Cm3 zBoZ?xS+kJvZj}*4&VvDTv&Ot6$NHsHn3#t|YMzB>w@huTUr@oKDPA%7IsRa42&nkY zJ9#37EujfAQ0)v#@XC3d;%;-PV-9&_y?ZD9DJq9Np!21YCh!#|m5XQs2~m4Z46@hN zu}By#!XYB28RqXeqHP&bbI6rdBfs@JhXdmi{hiN-PlQVGD2b*$V)nqks}#K)H+b|U z<;zjn3uDr)JBC8iniTKIBG;52`T?{s9t~xdZ_88kh&A5z#$<{#XI1?kjE9N{yHPV1 zl489mUIBETc;sUsOK&I67E_GFG%2-Xa-C$*5u@~E4OXV%zGWC^IZXG+x}ELgME0=#mJ(%fS0;uyBuK2T z+@we_v5&$0#12J$1(O4d31%gamj$+dN9iMkwus-T$w-TcDc0ni`P4nN_VD3DBS+dv z_tRclyt6EEkj@4m3-?DR&N(_nxl-YZAs88t$=ubYhhjw6*(sX2ch6814pxj%JyCnm z$-5~VFOO@^=ouOX%04Eo$V*5nB{mO_s?Qg6518u=?}ERyU-S>O7*EA{JF)ki?Tzkd zIrqK9uIDZcUp&`4n)VO@qRtZwDr5;fX-VB#+nFs%QJCJf7Hn}TYW;JCpZVJfvyb0d z4B`jwz5~oRCd>?f+qu20lrEA9eQ|-y#3@rMUqjjC0)vn)^j${BQ!At{Dk3iB+m5q5 zR^Ao7;k?a;Y4YB7!!+sVZk(UAbNXASUb&ySd3w92^K9Nex@05$^qq9cR{FVn>F>Fj z&f7whd#K(-=cLyY^{HFv%I&t#mCUU(`Oa0#TvFTYEM)I!dRZ;r%pCG?S$4&LF=unz zF#~hE&1dfJld=7L{{FLk1G?p=vt-w~#hL212Paos2WKO_95kP{2O`$n`DUcJX=&|N zQh}7N%4~7QK)qDK&F&d*dZp6xvy<*pViWt@-#iKG6VC#-ISOPkut;7Q07A; zqG%fZ=lhgiMU7~6)p ztYUIR!6f*1AFJBlBxO66)Tq^dXf|pWY_iiE!r)~NM4vJ;7Eb~+KhwsKd#8PU*bncw zg!wbIcSl>UQJNiNh{jnS45JS?vho^n8KFbg&YDv#8#=$p)_6x>f3#3EwIwTfrTE#n z^bD&m=xYLez~j5SD<$KikUryEX}=I7%_t$LQQ8ceq3Y_w)(n?!o7Z%B ztiMz9B^`I!8VH*Tjl-E)3MhV3i%q_wbxR}aaDHXd2$sMUQWQ#;GmQ)a(u~_E$Iv)E zj$$X81k|UQMumbC*J{!(x}fb)vOw-r)N*n#%uAl4+B^E8(fCi2b?!Ntv>EP%B$$lS zbQ7IdbCA{lG5&7n|NUhU@JsOD*0;9S()e!=x9)w9 zhux3EppftTWCT2s5b&_i9K;jzjS=)0hEF`PWuW`LcTxW)|Dhnqux7J0>%poVfDdGf&CHwdR>w;Pws<-*F(j)MlJko^e07i{vc zzs3v&JV`n4EwH&^t)^=81X@}@&98l^tQRY5n*}`hp*esz<+5cE(?x7rxu##X3+!mp zn+<#Dqzl|ywQi=myjUVBI(`AaB{7V5Je=;oYU6&R=9Axaw$|VASPdJ11GtQj^V-R{ z@R<;*u&+lzf}UrpeQaEq9bey_?3e88JLjeK^PQ8xaq*p#g1wOEycGA}Id9qhcV5%T z{ddkwcKQ)2ELL z{Cyq1SGMKH2K-pxWFJ7LS9Ad|3=}Ev@6G4u{oQW=pUnDE{MmIZ+yB?swv+pRW&Ppy z-Twb4{CypKje#;_*h%7Fh_c zqUsDLA!@?Drj48_tH3ci22qI72r(|G(-_Cm5NZyBA8O|(wWF_gbDcry0URfupI)5q zit|kqmR&Aj|5Zp4b~=A!OxetIwUZxzJ2-Bl!RJRv{g>?0prslKb)XFpacCUnBZ3qf z*fHsMIa&OG)|XQWJ!mGXf((t9dyUtPi`p@(pi%c+(E>;=e%BjIo}B9T!^<*cB01|l z!C#_p!6gMSnX-Sq3vyCK%R7w+*Nvtinf0a&(%EU*24k%nGrV#7@_fHWjlfP+p!N0R zv(xj7-#V?2ySX{dHDjCg^5ZU-vtSe|l@iP@y<)C|HsY~X%%5QNnCCUN9hQD;aSpKs zfQh3-#vMxJxkcsTb3YquH>@GU7Q@)RqpuPehk|&bZ!-{B*><>bRy#RZUXi3fIc@A$ zPj1nwbJL!HQ$YhYAp}R&z1mTBMxb8Qr;~dbxy!|~7Rc(;XaGwSZL|&L7C^=kbcS(1 zYy*{$1pPIvxr|jIRl2P>e|hrVZf-Sh^@g%#s1mfgG**P)z-D3J;6k?f-7^2)T<~A_ z?^gSNv)B2OI&eRHi0Aq2{eN?-lE#1A-q^U?|Nn%)ufJNwMH^oQC<&P9reDuxH;GmK z0OVyp|KU+SEgxt+aLks99=EN4H`Wy4qGPC!4jg-8^?cBJ0jaCA>D6fR1ita#i*ShG zt>+O4=^$IEr)V?zeLRb!awmF*6_}*IM^ra>V9NXA$ZmuPr%Rg`-ED4EHy%CeRNS8Q z#&$bTO#u32;ZCj-xKdMmGaxAr#e+KD)*%uf3MyC?xwtS^TkJ~<_!hm6M>8{~@s5GJ zMZu37D{>Hp&Ou9BJRZlVqTFG@PjyD(0SU#w?{y;6AlQy>B8-!Z zm;xx8U^wbl6b+#;)R(B)7@g!`k}(7wzQj^60paM5u?J89)*c)jH)Y(e( zY#ao~)qg)d-~FZ%9M@0q%X)wn?|!op1hBuq!6*W`Zzxetl}7RtljhW08igT6fs5K# zBgHUJPt-SStO{TyK#mij(^zFE==MmS@YV=6x;F%NgRW9L^b@F)6y@BAuT<%S`bK)7 z-YU0ZEO(8HMH(SMBOW@Oh_HVh-o)zuQ`A8`D?P(qUiuNdROo@lC8&9?S7LtbAxM9sZv{&O2ZLew$OS4!lCAuX6hRr`hr6> zAo7t!y88{6#{}~=deE_8POflckcVI?(UR?I#3x(>0#gand+!osV~l1~DS(EG6pda6 zQnK2^i3DPXKeAKLNegq(mtciYC=Uw33ilV<5xf1x-(I&Qolpr94?h2z%lXK!cXqh< zaoC25PYpDs%^qpfxWKE%f4qF;GKS0yRISfH>dLIwhdLbiS-xuPP+OcJc(J~Xs?{Fd?{G5NhS=1A0nu(}} zyY2RM&ddy^tgJy&^*2Rdx9rz#`}Lvy`pABLY`#|3?AP_V_4eY}ulaFyO6<0qFf&oy zj(fSpi&w8scGo^288WGS{g;oqEFu){lT|BBH4gV1q;W1py-l-zJm=NU>(!%OlZ>(k z!l3`&;@l_yEs_5P% zp;^7S7rpy_-0zf6&!3mij-KHSP)RT*Pe53H58`z=yqqC0XM?dp2=IC~RL9{&tyicP z$WomQ!+vL^_QT2hun%h;1k~fGKT=P__8|Hmq}-?t#f1oOUv5pLqHga4+Vc>Eg8(=X zv}iP)qG<-Y#mD|_-`V-;zL>8yR&uK#3%6HAahTIrSndSSH;#of8cru8G0@TqSs&9m zD>!f#&T|%8a|TTEm%u@%?};m z9?x7;c^W%_m(~i-7_?7*97Mv<;`)mJHU&o9)fFMaWEc0o*@CZ`;v;aYec#j++xUo^sL8 z@PiQ0^iygYN&ff^zhFhSi9goQCB`s=4#TH^JDft8`JB+c6+m>(09&6b^50s13cK}=nG)}a`?MKa;c6*n`y_bJcN zxSilJOE;RVgIB+$j^>Ka7?9~Gk+fS2Sq544Q1lQuAOcy(bek zLZlH|Blre{nbk!(S)T6B@%?wLg~`&_c};e|@88&BaMJJpymlWGk1ft4HRAry!~3S@ zv6&I917T-PzQrR=YILHYRSm3p+W}RdI->NB76J|BJy{NHE6z6XWC5?CaO8c$P?-lz z%^y$#0>%x1t0A_CEU|G>y?EJxdi7fKjMSHv>b{ps*2rR$@hUVgDVmjB?vI#0HHMQg z41@T@qeqjr&Qpw-~8@{!Uh=pYKY7+WjjyPK8HM@t$ zqd~;!44lW?ak|6$QH_8v+XA&DJSWk{G_MJ#d8S-UR1zsB=aLkfYqMi2 zk`z+Z{)_W@6h%fdrp|7MJt5pDnulc8iVNV?IZq;4=ers8N=Tr^I>j4HQa4{Qy`2kT z61#AdW>h@4Rw89>u|;ge_UK#0*f&KKl8c>EXRY;Tb`i~8;dVOAd@NYuD?)bK#iG}} z?SgikA~m%_A>Ckfi{={`^o1g{ z3 zVMwB+>s6PjUYG3y&2e6uIj<=39uOf%NUD$}h|-DiiQHJDREkWM0t$=0h*=|FGmyE3 zZPQd{xs%(5UB$jMi5jVky4L-4t4z>5Vo{Nb5VEm^)Bo?MN*o< z)(I!&F;XD(^1p#&070}k|NU}7T#HCBXZ8&aM9Vr+K*Qf;VS}t0 z$Fk?mxdHV01VX2aPN%VM$Oqm$*lj`?d`9;qrAZ=rx?=lN1{>t>4>0d!M3TuO(Ll>1 zUHrhkfiU>d_+(e*r4aQOvmdD^b{7_Q*LC(TZi{R&PkFo2EJPQEc&&CbI6pmXAV8~q zQr$;_;#HGbG(7Sk?07d65kSBq>1vKM@wRQFYKYvYTkmbWG`N2A&A~wg09~}>Sm%_D zY0CID^_6n$<%A4KPLCt3FL0c?!O=~9Xb1m%_6%U9T8VXBy(@BhtT_KFb+i2LH z+>ED9fmDWq_Rn9RT{KTlPik|LzKd?OM~y-76XzT)FEmhyIw&fViysv7Xq7#lPMXsK zji58EdLVOD!V@<;b5#GNpnu8F#F%HDMH<6@VOMRL<-D_ix(z8hBZ0Y~pE1fTv=DbP9SET%Pn7XCjcjml z3y&KZm(!xs=(x1pV*x8ojE2ZL^XI^6q!A(!nSAeM<2CXP>3*r?Y63DRjmykA(!D)} zCb&b^7AD;{J%;X~J)s7Bz;=)z$|K{C1%q|=qi8Jdw~jcPq6wD@7V7_RcmMN;`hTr$ ztZ!!A|E%BL|NIGmj-!eAh3~k|Ct85;RnETbK(c}e3M(T5N)XH=(jVckKUwEPdC>6GBH+F z8&AvF4@Pw8za#w=PAdv^ei?9jl;^{EM}7Al&HZ=Z4Xq$M9>s*K@D6>84bfx{BP7*B z=#Qb_i(3yPl=rP$-e(S>14I*#-wZXbZ`Sb9nHc5Y+{)Ph*YEs4{)|6use)YOg%ezSe;)3GmnOk?#DZmO zZL>oLT%;B1_M(1Az!Z=-S65&Dq>NA6%VFT(Q3MP^el zJ5GrP;2`YtcslEL|NrcL`C}S6(&+aq{1qDF#NYtFa?ILsCXP)Kc6>eK%uHUA?ZMEt zdjd2|gA;Ei?{9x~=HtbFe-BPI}l}e?mQk7_*jp^P?q*679qDwa+$-5dV zVt504+HH|U7{{gi_t$9JcS$Z1C>P;177XS<^8~Yi0-fyMiWQI{Elu5E3LTu>`7@%> zX5J9e*wpKFdstM**%j;Gy->f>X9oWtChK4S{P%GEeun?wf4KUc|9^we&CY**mrHX7 zG`@e0os+|3GAtAdAP`z?>iQSz?WJ`H=ir5^*t05_u7oG8|`g~#gisI%&OxR!bd z06dS@4Wf20t?$WecTzM4jMuQ;eZBJG!O99cj5`JK_~gX2vw)&I-pYsd72S6o2$6%w zs6j~U3(V*&(VvPFQ806`k93$nE6Y&|DFv}2mTi)?@*v5RUpi7u>eL_Qp8`pRfOfmi z@T!~z!yUQ{$Sv6zR0YDR+K*DcwyQcuo)sGBGgT~Rgy~;b5n=|F`k9(5@+9K1^y)j{ zIE#eG=SM16R|G6iv$(=58JTj>dR$wa6bb|Oy!zyj#k^NKW9X9=p{pbGr zcm40T_+0<$h=1=NM}53JLT+{VJs3N;URsBH+sDmT@Y|0Mf`ga)6p-86^6l5ZoE+{1 zt?h$Gp-g+q?rx(2+js?z7Rz>wwQjrH9R*|d7lhSLo_jSx@vdcLUFLK$$k_*gZ34e( zjWA}bE+oOYea?`Yy8^y@j$Y{+7=nkZ3^5pbLU;P{A%`SKbYNXe;Q)&@Hr8DLC@>!`DB)W$^ryuTOhM`%;Ge zOa8?pX@v;H^CY_9`>PFb$P%h#j>oCs@#zj=kjBwv*nPda!b8PzC5CO8;vSS{yWmIt=Q-Ps}I$W|Nb8+pv zs}<_^swNIN!s}Eo9J)Ez5OZni<+Hu1a2)06tbAE}tX2ie9$v2Hk$SkES_D6!pQ-9p+`R2vcw@Y zd)(oE5+z$nKa<+yByh9Y*dEaw>i&@;j+Eb?2 z_6Fsq>7%=(&H?JZy7Av_oR}s5O$J|G|MOt&p-2D!aOJ!F_YFRL;dn1PLv1SE0iTSc zUX8B9E((sLLPP+?u%r&|q@!%a@G}~;d*n-s(T{sqPC-gLwzjhJFdf>7?k;~Z|AU)} zr7sVH-Dc}&RvVMvX!~gc3-7{-R?s<92@aNJ!m9S0rK$Q+3uHmi9?OVRL4db8C`@Lh zf8Z}*O&8|iAak`=wn&-t4 z)eV7GkdYKrAlX)nKTQ=Z>k@-`eHhD_S040MUa#JJYso9l5a2(_YyWiHIxsmtuh;H9 z;P#)!6zs`F>tgBII zT!sTS4LL($(TrZymY!w?-4I3uk1^U$aT}{tCzm6!hj_Hu<)bdVQA#DExDeFzIe@`X_guvrAQkc;{Cg zVE&l@45PfTrkqrI_DLm$v^l5PE<-(Zj{?FXZK=E8c@?xjc*vvNtK^+n;?ZbA0r)VY z3Sz^$Qh#nB&uPTFMAGLG=!2vF)JKvz&KrC~(Q;Z!l*5za5$Lp(8ZqJ%zURnnJQ~{+ zd}~LpT<;_!r5gZ_S0|9YPp=l^k-jBEV; z=5644I6waL+REx`CjQ&%>e~1FKi}eW>jyyrpikS$MNx$xrqH37M@QiN>k!Mx-kBDv z+8WWB^gyuDsabKmFk7{XXdH@>JlN=bN@sDe7r%$%8ywJiwW6Z7CKq(!SzZpr)ZID* zEFh%vW1fc4W{8?njB_m3($%F7)lJpV?d!M>ctU0mM3dTr?9E~QyzYcptBCNQ6F}n% z_B)XAu-tmOH408EF)o=lfqR0u+qs~yxe0Wk7uJBvYp!@fI#eU}H|-ZYea0~n2yuy>XoNBA`DnXO_KhG^Z`-1}u8{!6NqfY|L1RDoDQ z$l_zLW9;B$v;Mm)JXikj`NlWi9LYmpOLWtJ@T|lD0oe{v|Gxd{K znIecL2KQAI6rQ8%Egq$7>JS7gvYUu@moMP1l)v)>pG)Xl&kv;ZXD@qjwZoWkhjKRG{Zy508Jw5NMijXh)2*o3<{b<}{_FPfLG$4GhA?GO@tCkwi>qQZ8FY}u zDFFJJ2>ZkFRh2oJD$|VzoFEQf#-sM=3fn7gh=q?5wT-P$Iw&;^kBub;Nmqe|2`CIv zyN5RvS=}UQAp8(^CLDAb;c_l0274$&V*-F-JE6a_5)0*4h2Ze$q_weCOR(Na)TdV8 zx1+HYgCE#IHzX(+XB_CH+>bE8VF(Mbn^bVjpn{|?VhiZki_7v%lrU~^B14ml1*=gW zjqT=1@DdPM!FYZ$|I7Bl$p$g?#_=(#PKF2}OfXV=Bx!N%&=g=CkKVxw9gW~n)Vunj zNVOLCng@-o1^oBmaFZd`5a^~1w!5{((a{ODr`xR;!Or3S{`SExt|&_4MU_DYFNw!@ z);4AI^+kjsn;;6F3>U>pvADC>*gkl9w6#%`Ps=ETQrr{WwEc61e#oG}hd-Nezy(5Y zi_ZLVNg(%OE&?0|mOw&`5X%5!96y+%e5jg0&O@=#I%yoyY6`n{(X)tafJ84!3li;; zxbv9S^Z+2E24px%E`oGVR3A$VPd0T;Djg3qg>Q+S?U#4}f+GMX*T&`4alkBml;3VG zZGPf>zM-j)=wnMI6CfFSae`|C%WcRG%AP^({yWQ!NrS;hFaWhgEUb#YJfrrLZk(iE z*J@mX^=zZ4j~dN2vAQ2U6}8m_TX-K0Ft;@|h=wa}Wy@IP zp~{q5Y>+v!6j6L~5hxZhB-`p1ms+J?Yx36`{aTm5){E#k2w=;rD{J?b^gopf5&;I< zVi$^b!r2ok{ZA2n4x!!_y6ql5d)C@oUlXa%Ev06G4ab#bSd`%aj4}b^FV6v;%X6$H z-964>Tj2e)xc3XZ>|Nr^UVKhFIuugx_IC~so^36v{pBOF{4pICUyD-vPrcXGm;MBq zYgDQ)VW{*^i^byM&s#i^YR|DJPCkQy>A%CRK-9WodE6h$iK+cYA0B^uxrxP5U(`lt z8tP(tL5fnROXN^0!k3aNSCV8_VkykoHA_XcbJ0@3850XM!+9^(@?NYLi+hKw&@CBA z7$h1A3f2$^C+{mRvWvPLAPqGaq57Jq`r2I8*RcA!r~3L_)z=q!!T=9+y+nZW?>hdi zo$6Qob#$=6|_HFW3Dq*DJ;1gko>Nl=GgL znn{p?blN*qoF$c#Ngp?UA7?~;qg{K?v6P@XR3E zQ6w*vT8p6K(OvOGxgy(AXo1cfZY>Y5UHjHF3G z04tJlV@zUGJlTG_*Vrn(DXs|MI7pStl9kkujR4b;W3hl!1zRgTEasG)4PcD{z{+YJ zZ66>v9MdFM0>Og83gXeDN2LYAxs;+yRh|cm$e5}Cf%-tLT^|%I z73a*2nIYuHF-*cqH?~fbB{hr1m#xO}>K3r=(dz7GsPJM2VR{S*Hx8d&Yo4%tW+~wA zcgiOY&ULda$Cmd@-@CP(cZ?TqZqD+8Z38F_S7M2l2+{lcsOtu~gTtOI-xj|-=j71? zIH^h{#NIEd1GHxa3@;^w8paGgi_U?0%l)TB;|VAfFVCkGT7Z_Rlsh$-=W0@N0RQrQ zvDlm1`ktPrwMykFCI*3*STW5{FK0Hj3=bBwEX^|^zdWyDD>x&!grXwOtl}wWl_3MV zuZTOdu7<|l5M6_R&bx+LYQ53aE{k2X29&;#kdGmTqH5tCdAHF0zo-N$P^qQm}AavL#&} z1wW>|BO`u4xET5d@`jy7VPooGu2yQ{`FS#ZG_eFv@%098l?TtyllZ;iH5Sq-O6507 zLy_Haoy4z_8Lh%zkMAgMtl4{6wPyC4k;FBFcKT6ej*+xaayJ{PY{yrz<5O0pkpN05 zvdQxG;?zk#g+=J8L;t2b{*j)3!a6iB6O4z;Ibl)3M5afj&2+9@v#5is2A$6-O&V0! znpoD$Y0lpb&)SpTSd`%y$LUc~u{G$T4ovb83?B-$C>`Bcr>(2hWgZij)h4Lmg+WhE zihnfD=%|qyh{bEos2nw%(`jQ4l4jqtIkUXv9rV>tRB4qu9Abdf%kVS0wR-(-O<&Zq zwiDRVz@Kuhkx6n8$24RHey%}e!DKkb2Et36fXSp+WrYG$deuLkx{haa( z|58O)GCf>5xZHFoP{(=|Cf_}B{u4hl{C_5c=mX}j{;W$tGw%P~U-RUDeE2>7*Ejjh zdH-8qeZlBkziuBlf@iJZuZR`d+d$l%XJ_-8ii)F}iR3vzDU*Q;ytg11bmYdXtGn=h5OYNn-ua?j>bqMPtt`|1c^-Ixl3?sZu8 z$9We-GBxe{RHo^~e`h3JTLla?H~7iAina1-f+Kub;R2{8yFAHSG-~Kr;SWrp;7kUT zIA)axA0YkYFW2skgYhX}4MGepTdwkFQ8~18>-WNesV^^^&0BwXag_w>ZW0H(OW$dl zJ;wxOJbLE=GWTo~3>ae%j5%kVAkZv(V9YoBa@N+S&6q5+KCKMKVv?8O;49sBETkET ziV=}!3F2}No{(-b74pHu6*OD8q^u*kK_Akb7|Zh|0yC=oJFmDReQSU`=w<>us0UoZ zyPe1j_v%`FW|!me4B6NYpXkayF!4{D6#e1e%8xWB`u>t`=Cdy`dG-hUB2#L6q$H@b z!!Ve8OKvdi+&BztfBTF;4EFUVUw8BsCs96&C!;k$39seIt&FZXd87*!OUkZ-vr@mD zT5m0b-cVjfl9ibhR+)x)R9BRL^ZSdqC$Gy;$K|y*^ef9iSa~ZRW#uMw4Q7Z@5qJc) zwmcFT-9JG|LMD}4TE^QGI+xg#OHxC17mB2p%(W(XtwojVTw^jceZ6Q5g&{TY{iesa z`^-51>8#dY@%*>4zLt&u_3-}p_z&OWgSjYQ?$yS4&KZy?O>N+~+4AIaZ>|R? z{W+%AgiQpt|MN+E)EQYqY%PJpLGIq1dB%=-|Gz(zYQQI8V;Ij07 zP@_~x_~bQwf6Kemca|~#XWsSyIYHoOt$$eTp7sCW`}+R|ADLST*QB`Sn*5$<>3_i| zZ~gb8({8^%T>cVmOuzrh-_!A*R@UzQ&;2ja_^i)=`TCzV|GSM}f`h}8M(Z=$n8E+o z?yscdf32;ouYcG7e~S+sD35v=m#ZtzLdvp`z#$U@cr`u@F`*>haT<=|VF)KVc!x>) z&}(XWl8or$uqL2l5n%0LuG(aL)e9w*pV7uk$5OgpLidcwVGe*N(P=NNbNsQvgw3x_!_UeVw9<+ z&iF&Mn7$=rf9zTWR4gsYAJZ%9ycM!EC$4b!=crpL8k`Abx?%(9O5Dqy_UCF|I1Qcl z-jOP=Vn%9-T&#giDCX6mqi=dA%6syklW=q;uR#lL8$Go7G2QdVX9?i}Gc}0C@7CDI zXTkgT(}vwa5Q|oR7gyo9PIP(D?vqKTa}o9xX&y~Zdr^n0!5Kw63h2ACK&8L$?(ZK3 zzy0=G@aom8-|JR2MKb1EX(joMeic{nat>?Q);3SRa8Jwv&_JH0s1D{Gd4TLB(VtKt;yM@dH(-iNPd zaO(f*GVrYZf4}`MM6dbJX=BFzfA9YNtp4ZT!|&(6Z}GV$)C^M`4l8Qs4o2-P&_(251)*}?nQfC@5KGb07fZ=>UB*%b$C`R?lqqh zXZxjb+-e>kY^~JS>MO<8Ats;SS}3Pp(}g^ECbl%wNn(W2f+q`Qep#t6lo>#!c=Ypg z^gFZ44?D%iZzspw!T$C^fbUw?%ZvJY@kL{M7g{qSxx`?{na3E^Ug|e*QjYbvvP5iFY@6v-e zXw6tCCl?`#X7A3`C7)WY!#)asB=MlusqlC=j%2%@^3aSfEoytIc4|HK6TS||7ig|3 z7Ga~_;9da!-56$7{=la=VwGZHp}ez$mmBtWWj|q#UThyXb_3P#UwhRWvF3toLkTm4Nl50Q$Q$=)#X0@(5 zJ5T$P>??H)lVAaasm7U>5LKxnCbsX1S_I=3ipAv5K&`hR_%pi(|2$um&D;Pm0&5-< zT+_SHg4jIR*?YO$P*AN=z7E(YD2~!yFc>nR;ba*k*5#%8dj0%goA5vanlbW)g$07a z->qf=*gCa|H_a&~#llaUSPa9C6pNFAq2Pt`@%}tSm@bu1UQ^*|vT{bii#zeJC2KSY zF!k8<#nYY!pc(0suUO91aA=MV(G8^^ud3U@;HyjZHvAXEf9L;#f0CH~sp|%6BR!k= zXn*_X20Yy1JIf4CZ%zy4_ffCg!COAecsA0-AM>qxl|4QsSQUV4S#*u6OTn{p{#maDal1nMc-9y z1%0rSA?%!36aky5uVHwGvvfPTt6mSu`M)BLR*>%HSp?@9RYlY|uc@e!=gOO<*DJNZ zy`@RiWNR&Li?;rPhlN@4KXv*u+qjAT_u>8T`rmKynQQ)2OZd8N%$Wbx`}Z>EzqJS7 z?SJ3obL$7K$wjv6I|63Te(HLV3h)JAIYm-@Hb%Ff4RIAuM5m3nY`Re*!}wz)!SPZIQ^r(&MNWz;3b?cQGwJ`8n?Zu6Altq9^(_(BT*GCgP%M@ z3|bNc@eJe5Q7C|_;CndQuVGy^A>ma;JOUVH*vJ6wk%)(!oDzMNdhM~P>F>GeppJ8R z5f4MY1R9x;bCV=In^4$1jHUN$^W??h%M-DE@CqZ^9d93;yxP=PmMN?vLZYZ#7@81O zWP|Y)pbh}`8^=2@pvLyo=3evU6)NbSHBSy2t(JIpcr3OBMK<1fxwm~Rj$R%g9kv>E zAzC5b2EwCz{@7ANFch`A;kX_3WCYJwFr7NC<|W3>=!6maOSVBS8(z(xGl0>i>{>F$ zq8UO!ta*ky`zl>EesnP&4>y*V-@kufKOao$@#uWH$1sxR$BfPP1V(AJk*|R$qFDfE z1%29z{VVb0xUqluOC$KX@e0l)t&^>Ci4HltApA6b!FBdXFBf$YC@ZS7PB^ zcqPhdAgU04${;C0q2=XsfP)V{am*<6jr(i+qs+zsja+u4Hm36b)rYGq_cQjt)raff zs?#W7y5E#O`F!YY(pp1FP?1 zXrf8j9lr~w8{Q<0g8ayz>V{M}xIk+gh9*tWFuRS8eBx&yYuLFSwcpW~C;dyhwp)k#G`lZ zIC%m)6cTp5J)yp>tuL?qO*OmS?NUru)3$UXNYtGQjAA{Q^f@BbLSpVI3$N0FmIJ|1*kOvGmI2pCWA|C~0b>PHz-yw4L|i6y@rJJdjl%QrLxm?4 z8Q$O9ux197&g{wf5BgE>hTPrz%PS9;iKY0u`{HDO?>+;v8P20VNOw=V?ZK$WfRf26 zAl^O?rBs7rPd`lP$(DHZsMI)oR@yAS#0MKAjK7YD;AG&74LxH zJUE|VT{*)TtDA1cP*EIn%tZzB9rjN{LfRoZP4U$tP7BFVg4h2zQx?cr2kZgqc{o9v zKRP4$L6Vb5r1ms&X5keGQac4?lm$h2c)aoOVTW z1y4QzYKMfQ><$o8k4Z_C`;##Tnh!s8dO$^&VPyj*1NB?Lab>mfC_X#Gn-ow~3~`7V zP+f-+2M9GVdwgKeX-mgv|jB$J=`l-kiwit0f;K)O0G`} z1`B}$UNk^7hzrOIg&cs#q35xeG>i!kQz3+A- znX!;w16gvIwQNTOynSenfrnE0P0_x^LCE<~FkFRoFjNUX zi4 z`_s6q)$9y`X5l|^67VBY#t$^x+0bW~UZxrB^^PuVYQ2)fhpIptv$s1ETah6Ko5^lu#*6Te*Yay^*}%vvCOXWdY~pH=jeHY`xdrvnl(WI&f&us+5xeIQ4TLJD{$?|NYp zHuQediaK(BvQ9h%79R$xcK~wn&FSyImtX(m&F^pTR(}8e&FSK1w%i&Oyj^}>3*Nkk za&{Rc3VdCD^Zst-P5F)UlE#@TKY{m4Xb1~rMqZcvZb z(+%n|K{*u{*4`|v&skkjv9Dzr+e=iKrs>Fy5{)FJQi-S+q~%&ah9g&s+E9wlr#26{ z0Xtk+{r&fRlzlWeyOPT1Db14t_V_k%>T-oLLu#3f`8={Ya&DS|g0-}1}k3In-3Nv?S+|n_pU*-Ll&k{3Y8hSLVQ5FVHmB zi0|4wJ-62CjbYf!_QpWW3cfywTV$n7q=J)O{mw#4*@^-S!kRS=_JT|!FbDPy1>n4E zGRZ7sUZJHo1G$hXoV-38Vu-YbTieIaf5GT#wN>TUMb^-Ag>4bz{v3 z6raGymr`x4g)ZL50^}Z84)7^CFJLn>#!X#o5C?GL3-p;szhJ9CAgu!GvBi_%S&BoY zh6J~1XMFfQAUNr9EP6mwUdP`)YGTLm+^YpV9-+gRCr2+&g6+LMGdo+4#Yz=JHS*St zmTqMiYqJl%K2+K;pZW7UE|XDg$=m*DK$jo;kbYgX+LX5)(E;z_m53{Yr*kWq~R z)Vd8yneaUIng<}tA8hZbdiSh)cqY!&{p3)9F&J%G!^%Z4WnwUh$H5sowMuy%C!Aph zXq^c#d8>SUI*EGS0F4`)MBHp0>Xz|r^>Oj%r!Sj(y8-`u(%f&fPT;`2_^Bf9+@TJY zsZCBE42}KXrF>-F(!$57^*@!w-P_6U71)2o;-Xqa7BUzwvX5WN3OcSW6-qE$xEI4= zntLHvAZ*70VFTOk;@{B%KDt`0ip6K)=}3Lw$0!H*WgE_%J$^zj{yrImi@2A-w;ny& zo}5pTF@9?SS@6*hejIkjF@43d2l1tTu^V>yd*$_l!SwaLw{HbneM<1ZIY-xPW?@jaA}00yrLlb?8v92lhsQq%)*eV55vg?&(X^^#E+teCn+D}k9(6^m zWohH$FOlZ!jNH43pjbmw!uDBPbUHzo0GO%rg3(3Y)>a~Et-7sG$;ii(DzH(btPX~g z5r!R+JluZ6fhv(mwX4_!w=HTpo586&~9Py{d6S5 zYTRbW6%YZ3IDNV6=$FRv)5BH+)(^#~vv_~WU#`SPKIs=Hy;)AtR!VVCB2xT@Bk4}w zrWEBpN@+Mo4MU9TNpeU77^>#wdVLkPwSP_`4Bx`3hA7o>0?#mSI?mg1c-9zBg@%3ZYNPvLl+qGxt5TZ9jnMP?ePe2`C{Df(NBa}$6o;M*O0TmbD(5s(nR|{ z*S*CWXk>IEM6^YB((luafHM+c6QX+%Vh0JTUXXNw+d&~Ft%+OW4ZvINvPD96=lsJ!)!ZqNnb zG)l$)R13HZ!da)a%8nvU|AmbnkHIXI$Q; z?WUOrSm(Tryad~EYr{rK_K-g6dl{76LTR@6Yc$Xz6F=yItOu|H(xA~4HwPpDxxfiT z{(Lj0FqNtK9;0@%7j?)Vqs)k4EMdD=#RrE-!bb~IZ9*bg`N>%vZ+PmTG=4j=D8f_U z_2A3^XdLX?6hU_!vxSb250B0Cvma(n>_~SurJt0>?Dyn93wuL-Mi?Q~x#3M9z zx6yc!Oq4ULav&;U-4jJN!d^wvdXS9kiZCLYYNiOL5zH&0cMCeDBpZ^AD7`ek!QEae ziQyZalkf|k{qV0meJ$!OigPX$<(Z%psPM{*|5$#r1piBx78W3{3PxS3R~OMvz&dT_%Wdh* zk4DR=ACcI~i2<|?S(|T=R1?$lkW`yi6EvrYO!>`|*LBn#{`uw!D{B9=*w&xYRPrb9 z-N{dX0zHKAM|xc(KUDz6M!CLJar#TUxYZ(eAA9DOB#x2lJo;N9Vo=f^CP_AC5}}MW zkC}3z)aJ_RC_jOJUPDLWzc=-__^6V`TUM2``wyzR><15PQ=ZryM9NPPeDd~gMRg$q zL>>?Lz@h59PFLt*Rrv{PmT87iHx57WpUp)kXd|xSY$co7XO?8fuZ?+xPbFAG9s0O{ z{FQl~0Y$qv-MLr1o-7yb4*HnN6{kcwc?74UbNJo@rA-{P-Ju0U=XTH(T<1)eXs$Jc zOo=aDDMDong|;kjl+tG5mQExpi#pXnCK=&Tz0|}n-ARXQ*=3M8Q>{4fbp)*~ZTocr z1Ttv)mNK#`eFRGEY!XLuE7fYkep0JpIZS~tW;R*2?!qmgUIYWwZ~Z^fU;am}_7jrY za>eoz$M`US`YJoJB^S}zSUkaM{D9OeSSI|ZD8UJ?#By>=Xl(rFTvE#4+s3p1rjQj6p^NpJm4q93)tO?s18jkPaWQ3@9*2(yV^{Iw#ytMD9<8+=OhGaWHjKSBGcgEJ~UDtWCcZ&$lr zuhwb$1hNY2nr&M?!c6qY6v$&ZJ))QdxSY{iRk?I7{L51MWSt&-Q}zPN{`sd>8C`En zd^FekTyHarDc5Y$V39)Eqle9#{YA%L+X9i+*yaL2U0)5>evM>lhLBYN+SMr!$1U-a zGv65B5+yXd-Dceb?j+G*f@kWmGvQ4zY>!0a@EPrs=OFA!S0rVrC6*HoF6p8Wybt)j zO8rx|cLY^u3uR|U%Y}xbh1wfZS{0zc#-0p5Wh+%AKyNAg%C+1B7qp(9JgO0Ca=TVj zV35^wLbPh_S?-+Oxg#{D{HS7I0B4`>Qpyt_6@sdPx->wjX~4UWsPz~oS`g8K3|dhz zCT6mH(M~SHgdDU6YA+zCBdI5=%g!MnMWI&b>}9yApV}LQd1{GKf5dRcMs%y@e5GX9TLgPnziF{MHf`znfr$itAQI{CjQKh=6hj<}Z=(NDQf}d5{ zClR_!klI9^Ax|eIr(30ZyltweXPGHBCPAaxUu2%562Bz*CZD_y)x9tDLL%Qb zV@BytNC|@XIUSLj>zcs@plJ!0vl8*@X`Spgj*mrY;Ukjmr;UaBhEfu2h zTd2(@tD-G%DXDdw>$edGZr6##_9!ZfQA1aaxV->Aelztd>$R{(m98 zhyhsv=Y=Pm(}1?mQb1Kq9rEp?kq~8y;3s*8({tLje(<_T7`d8R*aIe8qh z9D0S@d8zWzY(!H4%3a8^3RSK1zS&RQy@J}ZPx(sCf%_`CH;x#WDjE$|EA(E<7P7_C zn>Tl;NJ%wf^6U9EB^BkTkYd`&xz9=u+9XLrW zCSsrNzr!n#v|s*as7p22dO>%F^^nMMOt(am*qb*smel#Jl&txs7jo;>!QoM>+0xL7 z2wd1G9xp063a3)le+s>^T1%D3CQHKe-a^MEkr{B)_2^%oBO@x}w85mp(z`%Ww_LIw z$Lu^+mCw}jl~p9WEkF6FM$hKni=RH}rL5Wnx#!l@!YmQXW-FT|Uek2mK%psBlWaJP zpFSF7KFI{3vIZVj&=I}-7M0vfTEG3Kj87|X;R)+ArJzd|_Ha}i$NJ{H6#3LZH`Pe1 zA%m~0_RN`aA@YLxFVpii{9WN9*gvYmqH9V3Rj4O~`qJCV!ZI|myg3IZRCNk6{^ntT zX?`gGrcDbaM>4Y(!S?aO+GGg$5U-E(vbWieELs(S0^*V341P|qqb>%2 z=LBl?#NckTc*@F&h z5erw6132Y~FvrV6ET8AT9xRvSBICubiq7Uq^LO*3S;iTu!A6N$0~Pg-^*�{*2Xa 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�VA?QMPhM(ivv;e60C@u#WyU_p$* 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 1.02.89 +BuildRequires: libselinux-devel, libsepol-devel, readline-devel, ncurses-devel, git +BuildRequires: systemd-units, systemd-devel, json-c-devel, perl-interpreter, pkgconfig +Requires: userspace-rcu, json-c, device-mapper >= 1.02.96 +Requires(post): systemd-units +Requires(preun): systemd-units +Requires(postun): systemd-units +Conflicts: mdadm < 4.1-rc2.0.2 +Conflicts: udisks2 < 2.8.0-2 +Provides: device-mapper-multipath +Obsoletes: device-mapper-multipath +Provides: device-mapper-multipath-libs +Obsoletes: device-mapper-multipath-libs +Provides: kpartx +Obsoletes: kpartx +Provides: libdmmp +Obsoletes: libdmmp + +%description +This package provides the multipath tool and the multipathd daemon +to manage dm-multipath devices. multipath can detect and set up +multipath maps. multipathd sets up multipath maps automatically, +monitors path devices for failure, removal, or addition, and applies +the necessary changes to the multipath maps to ensure continuous +availability of the map devices. + +%package devel +Summary: Development libraries for %{name} +Requires: %{name} = %{version}-%{release} +Obsoletes: %{name}-libs < %{version}-%{release} +Provides: libdmmp-devel +Obsoletes: libdmmp-devel +Provides: device-mapper-multipath-devel +Obsoletes: device-mapper-multipath-devel +Requires: pkgconfig +Obsoletes: libdmmp + +%description devel +This package contains the development libraries for %{name} +that are %{name}'s libbmpathpersist and libmpathcmd libraries. + +%package help +Summary: Including man files for multipath-tools. +Requires: man +Provides: device-mapper-multipath-help +Obsoletes: device-mapper-multipath-help +%description help +This contains man files for the using of multipath-tools. + +%prep +%autosetup -Sgit -n multipath-tools-ef6d98b +cp %{SOURCE1} . + +%build +%make_build LIB=%{_lib} + +%install +make install \ + DESTDIR=%{buildroot} \ + bindir=/usr/sbin \ + syslibdir=/usr/%{_lib} \ + usrlibdir=/usr/%{_lib} \ + libdir=/usr/%{_lib}/multipath \ + rcdir=%{_initrddir} \ + unitdir=%{_unitdir} \ + includedir=%{_includedir} \ + pkgconfdir=/usr/%{_lib}/pkgconfig + +install -d %{buildroot}/etc/multipath +rm -rf %{buildroot}/%{_initrddir} + +%post +/sbin/ldconfig +%systemd_post multipathd.service + +%preun +%systemd_preun multipathd.service + +%postun +/sbin/ldconfig +if [ $1 -ge 1 ] ; then + /sbin/multipathd forcequeueing daemon > /dev/null 2>&1 || : +fi +%systemd_postun_with_restart multipathd.service + +%triggerun -- %{name} < 0.4.9-37 +/bin/systemctl --quiet is-enabled multipathd.service >/dev/null 2>&1 && /bin/systemctl reenable multipathd.service ||: + + +%files +%doc README README.alua multipath.conf +%license LICENSES/GPL-2.0 LICENSES/LGPL-2.0 LICENSES/GPL-3.0 +%{_unitdir}/* + /usr/sbin/* + /usr/%{_lib}/libmultipath.so + /usr/%{_lib}/libmultipath.so.* + /usr/%{_lib}/libmpathpersist.so.* + /usr/%{_lib}/libmpathcmd.so.* + /usr/%{_lib}/libdmmp.so.* +%dir /etc/multipath +%dir /usr/%{_lib}/multipath + /usr/%{_lib}/multipath/* + /usr/lib/udev/kpartx_id +%config /usr/lib/udev/rules.d/* + +%files devel +%doc README + %{_includedir}/*.h +%dir %{_includedir}/libdmmp + %{_includedir}/libdmmp/* + /usr/%{_lib}/libmpathpersist.so + /usr/%{_lib}/libmpathcmd.so + /usr/%{_lib}/libdmmp.so + /usr/%{_lib}/pkgconfig/libdmmp.pc + +%files help +%{_mandir}/man3/* +%{_mandir}/man5/* +%{_mandir}/man8/* + + +%changelog +* Fri Jan 10 2020 wangjufeng - 0.7.7-14 +- Type:enhancement +- ID:NA +- SUG:NA +- DESC:rename the package + +* Fri Jan 10 2020 wangjufeng - 0.7.7-13 +- Type:enhancement +- ID:NA +- SUG:NA +- DESC:rewrap the package + +* Fri Jan 3 2020 openEuler Buildteam - 0.7.7-12 +- Type:bugfix +- ID:NA +- SUG:NA +- DESC:fix find multipath failure + +* Tue Dec 31 2019 openEuler Buildteam - 0.7.7-11 +- Type:enhancement +- ID:NA +- SUG:NA +- DESC:package rewrap + +* Thu Dec 25 2019 openEuler Buildteam - 0.7.7-10 +- reupload patches + +* Wed Dec 25 2019 openEuler Buildteam - 0.7.7-9 +- revert patches + +* Tue Dec 24 2019 openEuler Buildteam - 0.7.7-8 +- bugfix + +* Fri Nov 01 2019 wangjufeng - 0.7.7-7 +- Type:bugfix +- ID:NA +- SUG:NA +- DESC:fix syntax error + +* Tue Sep 17 2019 zoujing - 0.7.7-6 +- Package init diff --git a/multipath.conf b/multipath.conf new file mode 100644 index 0000000..c7684fe --- /dev/null +++ b/multipath.conf @@ -0,0 +1,93 @@ +# This is a basic configuration file with some examples, for device mapper +# multipath. +# +# For a complete list of the default configuration values, run either +# multipath -t +# or +# multipathd show config +# +# For a list of configuration options with descriptions, see the multipath.conf +# man page + +## By default, devices with vendor = "IBM" and product = "S/390.*" are +## blacklisted. To enable mulitpathing on these devies, uncomment the +## following lines. +#blacklist_exceptions { +# device { +# vendor "IBM" +# product "S/390.*" +# } +#} + +## Use user friendly names, instead of using WWIDs as names. +defaults { + user_friendly_names yes + find_multipaths yes +} +## +## Here is an example of how to configure some standard options. +## +# +#defaults { +# udev_dir /dev +# polling_interval 10 +# selector "round-robin 0" +# path_grouping_policy multibus +# prio alua +# path_checker readsector0 +# rr_min_io 100 +# max_fds 8192 +# rr_weight priorities +# failback immediate +# no_path_retry fail +# user_friendly_names yes +#} +## +## The wwid line in the following blacklist section is shown as an example +## of how to blacklist devices by wwid. The 2 devnode lines are the +## compiled in default blacklist. If you want to blacklist entire types +## of devices, such as all scsi devices, you should use a devnode line. +## However, if you want to blacklist specific devices, you should use +## a wwid line. Since there is no guarantee that a specific device will +## not change names on reboot (from /dev/sda to /dev/sdb for example) +## devnode lines are not recommended for blacklisting specific devices. +## +#blacklist { +# wwid 26353900f02796769 +# devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*" +# devnode "^hd[a-z]" +#} +#multipaths { +# multipath { +# wwid 3600508b4000156d700012000000b0000 +# alias yellow +# path_grouping_policy multibus +# path_checker readsector0 +# path_selector "round-robin 0" +# failback manual +# rr_weight priorities +# no_path_retry 5 +# } +# multipath { +# wwid 1DEC_____321816758474 +# alias red +# } +#} +#devices { +# device { +# vendor "COMPAQ " +# product "HSV110 (C)COMPAQ" +# path_grouping_policy multibus +# path_checker readsector0 +# path_selector "round-robin 0" +# hardware_handler "0" +# failback 15 +# rr_weight priorities +# no_path_retry queue +# } +# device { +# vendor "COMPAQ " +# product "MSA1000 " +# path_grouping_policy multibus +# } +#}