summaryrefslogtreecommitdiffstats
path: root/0007-multipath-print-sysfs-state-in-fast-list-mode.patch
diff options
context:
space:
mode:
authorBenjamin Marzinski <bmarzins@redhat.com>2018-02-15 13:17:53 -0600
committerBenjamin Marzinski <bmarzins@redhat.com>2018-02-15 13:17:53 -0600
commit5bea53fe7ed7dd7afa8e76f7f84f76fdb89d59d9 (patch)
tree9a89c87df6336311ebe30ae2c51af13f92d6a3d6 /0007-multipath-print-sysfs-state-in-fast-list-mode.patch
parent7e8f34e1813a9ae89b5acc012fa7d45c3d7bbdb8 (diff)
downloaddevice-mapper-multipath-5bea53fe7ed7dd7afa8e76f7f84f76fdb89d59d9.tar.gz
device-mapper-multipath-5bea53fe7ed7dd7afa8e76f7f84f76fdb89d59d9.tar.xz
device-mapper-multipath-5bea53fe7ed7dd7afa8e76f7f84f76fdb89d59d9.zip
device-mapper-multipath-0.7.4-1.git07e7bd5master
Update Source to the latest upstream commit * Previous patches 0001-0006 are included in this commit * Previous patches 0007-0014 are now patches 0015-0022 Add 0001-libmultipath-fix-tur-checker-locking.patch * Fixed spinlock bug. posted upstream Add 0002-multipath-fix-DEF_TIMEOUT-use.patch * Add missing sec to ms conversion. posted upstream Add 0003-multipathd-remove-coalesce_paths-from-ev_add_map.patch * Remove unused code. posted upstream Add 0004-multipathd-remove-unused-configure-parameter.patch * Remove unused code. posted upstream Add 0005-Fix-set_no_path_retry-regression.patch * Fix issue with queueing and path addition. posted upstream Add 0006-multipathd-change-spurious-uevent-msg-priority.patch * Change message priority to Notice. posted upstream Add 0007-multipath-print-sysfs-state-in-fast-list-mode.patch * Show sysfs state correctly in fast list mode (-l). posted upstream Add 0008-libmultipath-move-remove_map-waiter-code-to-multipat.patch * Move code around. posted upstream Add 0009-move-waiter-code-from-libmultipath-to-multipathd.patch * Move code around. posted upstream Add 0010-call-start_waiter_thread-before-setup_multipath.patch * Fix race on multipath device creations. posted upstream Add 0011-libmultipath-add-helper-functions.patch * posted upstream Add 0012-multipathd-RFC-add-new-polling-dmevents-waiter-threa.patch * Add alternate method of getting dmevents, that doesn't require a thread per device. posted upstream Add 0013-libmultipath-condlog-log-to-stderr.patch * change condlog to log to stderr instead of stdout. posted upstream Add 0014-multipathd-fix-compiler-warning-for-uev_pathfail_che.patch * fix indentation issue. posted upstream
Diffstat (limited to '0007-multipath-print-sysfs-state-in-fast-list-mode.patch')
-rw-r--r--0007-multipath-print-sysfs-state-in-fast-list-mode.patch68
1 files changed, 68 insertions, 0 deletions
diff --git a/0007-multipath-print-sysfs-state-in-fast-list-mode.patch b/0007-multipath-print-sysfs-state-in-fast-list-mode.patch
new file mode 100644
index 0000000..890793c
--- /dev/null
+++ b/0007-multipath-print-sysfs-state-in-fast-list-mode.patch
@@ -0,0 +1,68 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Wed, 7 Feb 2018 16:06:06 -0600
+Subject: [PATCH] multipath: print sysfs state in fast list mode
+
+commit b123e711ea2a4b471a98ff5e26815df3773636b5 "libmultipath: cleanup
+orphan device states" stopped multipathd from showing old state for
+orphan paths by checking if pp->mpp was set, and only printing the state
+if it was. Unfortunately, when "multipath -l" is run, pp->mpp isn't
+set. While the checker state isn't checked and shouldn't be printed with
+"-l", the sysfs state can be, and was before b123e711. This patch sets
+pp->mpp in fast list mode, so that the sysfs state gets printed. It
+also verifies that the path exists in sysfs, and if not, marks it as
+faulty.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ multipath/main.c | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/multipath/main.c b/multipath/main.c
+index bffe065..d2415a9 100644
+--- a/multipath/main.c
++++ b/multipath/main.c
+@@ -149,7 +149,7 @@ usage (char * progname)
+ }
+
+ static int
+-update_paths (struct multipath * mpp)
++update_paths (struct multipath * mpp, int quick)
+ {
+ int i, j;
+ struct pathgroup * pgp;
+@@ -171,9 +171,12 @@ update_paths (struct multipath * mpp)
+ * path is not in sysfs anymore
+ */
+ pp->chkrstate = pp->state = PATH_DOWN;
++ pp->offline = 1;
+ continue;
+ }
+ pp->mpp = mpp;
++ if (quick)
++ continue;
+ conf = get_multipath_config();
+ if (pathinfo(pp, conf, DI_ALL))
+ pp->state = PATH_UNCHECKED;
+@@ -181,6 +184,8 @@ update_paths (struct multipath * mpp)
+ continue;
+ }
+ pp->mpp = mpp;
++ if (quick)
++ continue;
+ if (pp->state == PATH_UNCHECKED ||
+ pp->state == PATH_WILD) {
+ conf = get_multipath_config();
+@@ -238,8 +243,7 @@ get_dm_mpvec (enum mpath_cmds cmd, vector curmp, vector pathvec, char * refwwid)
+ * If not in "fast list mode", we need to fetch information
+ * about them
+ */
+- if (cmd != CMD_LIST_SHORT)
+- update_paths(mpp);
++ update_paths(mpp, (cmd == CMD_LIST_SHORT));
+
+ if (cmd == CMD_LIST_LONG)
+ mpp->bestpg = select_path_group(mpp);
+--
+2.7.4
+