[dm-devel] [PATCH 1/6] Fix for uevent devpath handling
Benjamin Marzinski
bmarzins at redhat.com
Thu Dec 11 22:03:28 UTC 2008
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 at redhat.com>
---
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;
More information about the dm-devel
mailing list