summaryrefslogtreecommitdiffstats
path: root/dont_remove.patch
diff options
context:
space:
mode:
Diffstat (limited to 'dont_remove.patch')
-rw-r--r--dont_remove.patch28
1 files changed, 28 insertions, 0 deletions
diff --git a/dont_remove.patch b/dont_remove.patch
new file mode 100644
index 0000000..fbd3510
--- /dev/null
+++ b/dont_remove.patch
@@ -0,0 +1,28 @@
+Index: multipath-tools/multipathd/main.c
+===================================================================
+--- multipath-tools.orig/multipathd/main.c
++++ multipath-tools/multipathd/main.c
+@@ -290,8 +290,23 @@ ev_add_map (struct sysfs_device * dev, s
+ static int
+ uev_remove_map (struct sysfs_device * dev, struct vectors * vecs)
+ {
++ struct multipath * mpp;
++
+ condlog(2, "%s: remove map (uevent)", dev->kernel);
++#if 0
+ return ev_remove_map(dev->kernel, vecs);
++#else
++ mpp = find_mp_by_str(vecs->mpvec, dev->kernel);
++
++ if (!mpp) {
++ condlog(2, "%s: devmap not registered, can't remove",
++ dev->kernel);
++ return 0;
++ }
++ orphan_paths(vecs->pathvec, mpp);
++ remove_map_and_stop_waiter(mpp, vecs, 1);
++ return 0;
++#endif
+ }
+
+ int