]> 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>
Thu, 27 Jan 2011 02:56:51 +0000 (12:56 +1000)
# 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 10d2140606124a1b9c28b36405ee6aa594a22f58..b806a97c73d7363575d0c7d06a88a9347bdb7bdd 100644 (file)
--- a/util.c
+++ b/util.c
@@ -1729,7 +1729,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);
        }