2b0cd7cceb
Rebased on top of Martin Wilck's queue of ACKed upstream commits * https://github.com/openSUSE/multipath-tools/tree/upstream-queue * All previous patches have been reordered, with the exception of 0011-libdmmp-Add-support-for-upcoming-json-c-0.14.0.patch which has been replaced with 0029-fix-boolean-value-with-json-c-0.14.patch Modify 0054-RH-add-mpathconf.patch * remove default enable_foreign and property blacklist_exceptions settings, and deal with the builtin default change from 0031-libmultipath-set-enable_foreign-to-NONE-by-default.patch. Fixes bz #1853668 Add 0048-Makefile.inc-trim-extra-information-from-systemd-ver.patch Add 0049-kpartx-fix-Wsign-compare-error.patch * The above two patches have been submitted upstream
90 lines
3.0 KiB
Diff
90 lines
3.0 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Martin Wilck <mwilck@suse.com>
|
|
Date: Mon, 2 Mar 2020 22:43:27 +0100
|
|
Subject: [PATCH] multipath: add "-e" option to enable foreign libraries
|
|
|
|
As we have set "enable_foreign" to "NONE" now by default, users
|
|
may find it useful to be able to switch on foreign multipath display
|
|
with an extra command line option even if foreign libraries are
|
|
not enabled in multipath.conf. Currently this makes only sense
|
|
with "multipath -ll", as the nvme library (and foreign libraries
|
|
in general) support only the display of status information.
|
|
|
|
Suggested-by: Benjamin Marzinski <bmarzins@redhat.com>
|
|
Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
|
|
---
|
|
multipath/main.c | 11 ++++++++++-
|
|
multipath/multipath.8 | 6 ++++++
|
|
2 files changed, 16 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/multipath/main.c b/multipath/main.c
|
|
index 953fab27..c4740fab 100644
|
|
--- a/multipath/main.c
|
|
+++ b/multipath/main.c
|
|
@@ -145,6 +145,7 @@ usage (char * progname)
|
|
" -h print this usage text\n"
|
|
" -l show multipath topology (sysfs and DM info)\n"
|
|
" -ll show multipath topology (maximum info)\n"
|
|
+ " -e enable foreign libraries with -l/-ll\n"
|
|
" -f flush a multipath device map\n"
|
|
" -F flush all multipath device maps\n"
|
|
" -a add a device wwid to the wwids file\n"
|
|
@@ -865,6 +866,7 @@ main (int argc, char *argv[])
|
|
char *dev = NULL;
|
|
struct config *conf;
|
|
int retries = -1;
|
|
+ bool enable_foreign = false;
|
|
|
|
udev = udev_new();
|
|
logsink = 0;
|
|
@@ -874,7 +876,7 @@ main (int argc, char *argv[])
|
|
multipath_conf = conf;
|
|
conf->retrigger_tries = 0;
|
|
conf->force_sync = 1;
|
|
- while ((arg = getopt(argc, argv, ":adcChl::FfM:v:p:b:BrR:itTquUwW")) != EOF ) {
|
|
+ while ((arg = getopt(argc, argv, ":adcChl::eFfM:v:p:b:BrR:itTquUwW")) != EOF ) {
|
|
switch(arg) {
|
|
case 1: printf("optarg : %s\n",optarg);
|
|
break;
|
|
@@ -971,6 +973,9 @@ main (int argc, char *argv[])
|
|
case 'R':
|
|
retries = atoi(optarg);
|
|
break;
|
|
+ case 'e':
|
|
+ enable_foreign = true;
|
|
+ break;
|
|
case ':':
|
|
fprintf(stderr, "Missing option argument\n");
|
|
usage(argv[0]);
|
|
@@ -1022,6 +1027,10 @@ main (int argc, char *argv[])
|
|
condlog(0, "failed to initialize prioritizers");
|
|
goto out;
|
|
}
|
|
+
|
|
+ if ((cmd == CMD_LIST_SHORT || cmd == CMD_LIST_LONG) && enable_foreign)
|
|
+ conf->enable_foreign = "";
|
|
+
|
|
/* Failing here is non-fatal */
|
|
init_foreign(conf->multipath_dir, conf->enable_foreign);
|
|
if (cmd == CMD_USABLE_PATHS) {
|
|
diff --git a/multipath/multipath.8 b/multipath/multipath.8
|
|
index 9cdd05a3..6fb8645a 100644
|
|
--- a/multipath/multipath.8
|
|
+++ b/multipath/multipath.8
|
|
@@ -223,6 +223,12 @@ The verbosity level also controls the level of log and debug messages printed to
|
|
Dry run, do not create or update devmaps.
|
|
.
|
|
.TP
|
|
+.B \-e
|
|
+Enable all foreign libraries. This overrides the
|
|
+.I enable_foreign
|
|
+option from \fBmultipath.conf(5)\fR.
|
|
+.
|
|
+.TP
|
|
.B \-i
|
|
Ignore WWIDs file when processing devices. If
|
|
\fIfind_multipaths strict\fR or \fIfind_multipaths no\fR is set in
|
|
--
|
|
2.17.2
|
|
|