From: Benjamin Marzinski Date: Thu, 11 Dec 2008 22:03:28 +0000 (-0600) Subject: Fix for uevent devpath handling X-Git-Tag: 0.4.9~162 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7fa7affc3d23dd9dc906804d22a61144bca9f9b9;p=platform%2Fupstream%2Fmultipath-tools.git Fix for uevent devpath handling 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 --- diff --git a/multipathd/main.c b/multipathd/main.c index 7304056..30dba5b 100644 --- a/multipathd/main.c +++ b/multipathd/main.c @@ -603,14 +603,20 @@ uxsock_trigger (char * str, char ** reply, int * len, void * trigger_data) 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;