summaryrefslogtreecommitdiffstats
path: root/uevent_debug.patch
diff options
context:
space:
mode:
Diffstat (limited to 'uevent_debug.patch')
-rw-r--r--uevent_debug.patch28
1 files changed, 28 insertions, 0 deletions
diff --git a/uevent_debug.patch b/uevent_debug.patch
new file mode 100644
index 0000000..39c424d
--- /dev/null
+++ b/uevent_debug.patch
@@ -0,0 +1,28 @@
+Index: multipath-tools-080515/multipathd/main.c
+===================================================================
+--- multipath-tools-080515.orig/multipathd/main.c
++++ multipath-tools-080515/multipathd/main.c
+@@ -619,14 +619,20 @@ uxsock_trigger (char * str, char ** repl
+ static int
+ uev_discard(char * devpath)
+ {
++ char *tmp;
+ char a[10], b[10];
+
+ /*
+ * keep only block devices, discard partitions
+ */
+- if (sscanf(devpath, "/block/%10s", a) != 1 ||
+- sscanf(devpath, "/block/%10[^/]/%10s", a, b) == 2) {
+- condlog(4, "discard event on %s", devpath);
++ tmp = strstr(devpath, "/block/");
++ if (tmp == NULL){
++ condlog(0, "no /block/ in '%s'", devpath);
++ return 1;
++ }
++ if (sscanf(tmp, "/block/%10s", a) != 1 ||
++ sscanf(tmp, "/block/%10[^/]/%10s", a, b) == 2) {
++ condlog(0, "discard event on %s", devpath);
+ return 1;
+ }
+ return 0;