From 3143cc1c5f05429501392f253140a61333223717 Mon Sep 17 00:00:00 2001 From: fzielcke Date: Wed, 4 Feb 2009 10:52:25 +0000 Subject: [PATCH] 2009-02-04 Felix Zielcke util/getroot.c (grub_util_get_grub_dev): Add support for /dev/mdNpN and /dev/md/NpN style mdraid devices. --- ChangeLog | 5 +++++ util/getroot.c | 22 ++++++++++++++++++++-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1519475a0..4c392487f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2009-02-04 Felix Zielcke + + util/getroot.c (grub_util_get_grub_dev): Add support for /dev/mdNpN and + /dev/md/NpN style mdraid devices. + 2009-02-03 Felix Zielcke * util/unifont2pff.rb: Remove. diff --git a/util/getroot.c b/util/getroot.c index ffb581da8..e88354e07 100644 --- a/util/getroot.c +++ b/util/getroot.c @@ -470,11 +470,29 @@ grub_util_get_grub_dev (const char *os_dev) } else if (os_dev[7] >= '0' && os_dev[7] <= '9') { - asprintf (&grub_dev, "md%s", os_dev + sizeof ("/dev/md") - 1); + char *p , *q; + + p = strdup (os_dev + sizeof ("/dev/md") - 1); + + q = strchr (p, 'p'); + if (q) + *q = ','; + + asprintf (&grub_dev, "md%s", p); + free (p); } else if (os_dev[7] == '/' && os_dev[8] >= '0' && os_dev[8] <= '9') { - asprintf (&grub_dev, "md%s", os_dev + sizeof ("/dev/md/") - 1); + char *p , *q; + + p = strdup (os_dev + sizeof ("/dev/md/") - 1); + + q = strchr (p, 'p'); + if (q) + *q = ','; + + asprintf (&grub_dev, "md%s", p); + free (p); } else grub_util_error ("Unknown kind of RAID device `%s'", os_dev);