Thread (1 message) 1 message, 1 author, 2011-01-20

RE: [PATCH] fix extended partition detection

From: Hawrylewicz Czarnowski, Przemyslaw <hidden>
Date: 2011-01-20 11:28:25

Neil,

Could you please take a look at this patch and possibly include it to your devel-3.2 branch?
Thanks in advance
quoted hunk
-----Original Message-----
From: Williams, Dan J
Sent: Friday, January 14, 2011 2:39 AM
To: neilb@suse.de
Cc: linux-raid@vger.kernel.org; Wasilewski, Krzysztof; Hawrylewicz
Czarnowski, Przemyslaw
Subject: [PATCH] fix extended partition detection

# mdadm --detail --export /dev/md127p1

Before:
MD_LEVEL=raid5
MD_DEVICES=4
MD_METADATA=0.90

After:
MD_LEVEL=raid5
MD_DEVICES=4
MD_CONTAINER=/dev/md0
MD_MEMBER=0
MD_UUID=55746a20:925d24a7:4f9bd7e2:9c9a411f

We parse the symlink target with a format:

../../block/mdXXX/mdXXXpYY

...and need the second '/' from the end of the string to read detect a
'md' device.

Reported-by: Krzysztof Wasilewski <redacted>
Cc: Przemyslaw Czarnowski <redacted>
Signed-off-by: Dan Williams <redacted>
---

If there are any 3.1.x stable releases planned I would consider this a
candidate as it allows custom name partitions to be created by udev
(like /dev/md/vol1p1).  I believe this was masked by the usage of mdp
devices.

On 3.2 it exposes a segfault as we try to get the container_content() of
'mbr' metadata.

--
Dan

 util.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/util.c b/util.c
index c9bdd6e..75a5e6d 100644
--- a/util.c
+++ b/util.c
@@ -1664,7 +1664,7 @@ int stat2devnum(struct stat *st)
 		link[n] = 0;
 		cp = strrchr(link, '/');
 		if (cp) *cp = 0;
-		cp = strchr(link, '/');
+		cp = strrchr(link, '/');
 		if (cp && strncmp(cp, "/md", 3) == 0)
 			return devname2devnum(cp+1);
 	}
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help