[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
[dm-devel] [PATCH 1/6] Fix for uevent devpath handling
- From: Benjamin Marzinski <bmarzins redhat com>
- To: christophe varoqui <christophe varoqui free fr>
- Cc: device-mapper development <dm-devel redhat com>
- Subject: [dm-devel] [PATCH 1/6] Fix for uevent devpath handling
- Date: Thu, 11 Dec 2008 16:03:28 -0600
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 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;
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]