]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
fix extended partition detection
authorDan Williams <dan.j.williams@intel.com>
Tue, 25 Jan 2011 02:54:06 +0000 (18:54 -0800)
committerNeilBrown <neilb@suse.de>
Mon, 14 Feb 2011 23:45:33 +0000 (10:45 +1100)
# 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 <krzysztof.wasilewski@intel.com>
Cc: Przemyslaw Czarnowski <przemyslaw.hawrylewicz.czarnowski@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: NeilBrown <neilb@suse.de>
util.c

diff --git a/util.c b/util.c
index c9bdd6eb8e1a565734ccf91f8a4f665c13db5169..75a5e6df33ade38db8ad54773159ef6a2973ce07 100644 (file)
--- 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);
        }