]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
2008-12-28 Felix Zielcke <fzielcke@z-51.de>
authorfzielcke <fzielcke@localhost>
Sun, 28 Dec 2008 16:20:30 +0000 (16:20 +0000)
committerfzielcke <fzielcke@localhost>
Sun, 28 Dec 2008 16:20:30 +0000 (16:20 +0000)
* util/getroot.c (grub_util_get_grub_dev): Add support for
/dev/md/dNNpNN style partitionable mdraid devices.

ChangeLog
util/getroot.c

index f3864223d5f8941b7be85bc8d0f59e7ec47f79fb..301346eb2756e4f2a81c4a2ac66c618139c3a2f5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-12-28  Felix Zielcke  <fzielcke@z-51.de>
+
+       * util/getroot.c (grub_util_get_grub_dev): Add support for
+       /dev/md/dNNpNN style partitionable mdraid devices.
+
 2008-12-12  Alex Smith  <alex@alex-smith.me.uk>
 
        * fs/i386/pc/pxe.c (grub_pxefs_open): Handle the one open connection
index ae2a07556db0116b7d361ab58719e55714dea878..ffb581da8ddee4e6347cb06242b33472bf7b803e 100644 (file)
@@ -441,11 +441,26 @@ grub_util_get_grub_dev (const char *os_dev)
       if (os_dev[7] == '_' && os_dev[8] == 'd')
        {
          /* This a partitionable RAID device of the form /dev/md_dNNpMM. */
-         
-         char *p , *q;
+
+         char *p, *q;
 
          p = strdup (os_dev + sizeof ("/dev/md_d") - 1);
 
+         q = strchr (p, 'p');
+         if (q)
+           *q = ',';
+
+         asprintf (&grub_dev, "md%s", p);
+         free (p);
+       }
+      else if (os_dev[7] == '/' && os_dev[8] == 'd')
+       {
+         /* This a partitionable RAID device of the form /dev/md/dNNpMM. */
+
+         char *p, *q;
+
+         p = strdup (os_dev + sizeof ("/dev/md/d") - 1);
+
          q = strchr (p, 'p');
          if (q)
            *q = ',';