forked from pool/multipath-tools
46 lines
1.3 KiB
Plaintext
46 lines
1.3 KiB
Plaintext
|
From b33a53646ba745dca3ef93ca29c45cbef2dfa171 Mon Sep 17 00:00:00 2001
|
||
|
From: Hannes Reinecke <hare@suse.de>
|
||
|
Date: Tue, 18 Nov 2008 08:29:17 +0100
|
||
|
Subject: [PATCH] Adapt to new sysfs layout in uev_discard()
|
||
|
|
||
|
Later kernel moved the block sysfs entry below the device path,
|
||
|
so we have to check for the 'block' directory somewhere in the
|
||
|
devpath, not at the beginning.
|
||
|
|
||
|
Signed-off-by: Hannes Reinecke <hare@suse.de>
|
||
|
---
|
||
|
multipathd/main.c | 13 +++++++++----
|
||
|
1 files changed, 9 insertions(+), 4 deletions(-)
|
||
|
|
||
|
diff --git a/multipathd/main.c b/multipathd/main.c
|
||
|
index a4b0311..6908902 100644
|
||
|
--- a/multipathd/main.c
|
||
|
+++ b/multipathd/main.c
|
||
|
@@ -603,14 +603,19 @@ uxsock_trigger (char * str, char ** reply, int * len, void * trigger_data)
|
||
|
static int
|
||
|
uev_discard(char * devpath)
|
||
|
{
|
||
|
- char a[10], b[10];
|
||
|
+ char a[10], b[10], *c;
|
||
|
|
||
|
/*
|
||
|
* 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);
|
||
|
+ c = strstr(devpath,"/block");
|
||
|
+ if (!c) {
|
||
|
+ condlog(3, "discard non-block event on %s", devpath);
|
||
|
+ return 1;
|
||
|
+ }
|
||
|
+ if (sscanf(c, "/block/%10s", a) != 1 ||
|
||
|
+ sscanf(c, "/block/%10[^/]/%10s", a, b) == 2) {
|
||
|
+ condlog(3, "discard event on %s", c);
|
||
|
return 1;
|
||
|
}
|
||
|
return 0;
|
||
|
--
|
||
|
1.5.3.2
|
||
|
|