This is necessary to make uevents work on fedora, since devpath appears as something like: '/devices/pci0000:00/0000:00:0a.0/0000:06:00.0/host11/rport-11:0-1/target11:0:1/11:0:1:0/block/sdi' It simply strips off the everything up to the /block. Signed-off-by: Benjamin Marzinski <bmarzins@xxxxxxxxxx> --- multipathd/main.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) Index: multipath-tools-081203/multipathd/main.c =================================================================== --- multipath-tools-081203.orig/multipathd/main.c +++ multipath-tools-081203/multipathd/main.c @@ -603,14 +603,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; -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel