]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
2009-11-24 Felix Zielcke <fzielcke@z-51.de>
authorFelix Zielcke <fzielcke@z-51.de>
Tue, 24 Nov 2009 07:20:48 +0000 (08:20 +0100)
committerFelix Zielcke <fzielcke@z-51.de>
Tue, 24 Nov 2009 07:20:48 +0000 (08:20 +0100)
* util/getroot.c (grub_util_is_dmraid): New function.
(grub_util_get_dev_abstraction): Treat dmraid and multipath
devices as normal ones, not as LVM.

ChangeLog
util/getroot.c

index decef53b0c6696a550fb5f53898a80971d062c10..b7887190daf3710e71ddc0310decf45432b9017d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2009-11-24  Felix Zielcke  <fzielcke@z-51.de>
+
+       * util/getroot.c (grub_util_is_dmraid): New function.
+       (grub_util_get_dev_abstraction): Treat dmraid and multipath
+       devices as normal ones, not as LVM.
+
 2009-11-23  Robert Millan  <rmh.grub@aybabtu.com>
 
        * po/id.po: New file.
index 2915ab4f2f17e6efe9aaac3bea41511d3c5e392e..da78bc37594c92b7fc450fa65f09decce8f853b0 100644 (file)
@@ -460,13 +460,41 @@ grub_guess_root_device (const char *dir)
 
   return os_dev;
 }
+int
+grub_util_is_dmraid (const char *os_dev)
+{
+  if (! strncmp (os_dev, "/dev/mapper/nvidia_", 19))
+    return 1;
+  else if (! strncmp (os_dev, "/dev/mapper/isw_", 16))
+    return 1;
+  else if (! strncmp (os_dev, "/dev/mapper/hpt37x_", 19))
+    return 1;
+  else if (! strncmp (os_dev, "/dev/mapper/hpt45x_", 19))
+    return 1;
+  else if (! strncmp (os_dev, "/dev/mapper/via_", 16))
+    return 1;
+  else if (! strncmp (os_dev, "/dev/mapper/lsi_", 16))
+    return 1;
+  else if (! strncmp (os_dev, "/dev/mapper/pdc_", 16))
+    return 1;
+  else if (! strncmp (os_dev, "/dev/mapper/jmicron_", 20))
+    return 1;
+  else if (! strncmp (os_dev, "/dev/mapper/asr_", 16))
+    return 1;
+  else if (! strncmp (os_dev, "/dev/mapper/sil_", 16))
+    return 1;
+  return 0;
+}
 
 int
 grub_util_get_dev_abstraction (const char *os_dev UNUSED)
 {
 #ifdef __linux__
   /* Check for LVM.  */
-  if (!strncmp (os_dev, "/dev/mapper/", 12))
+  if (!strncmp (os_dev, "/dev/mapper/", 12)
+      && ! grub_util_is_dmraid (os_dev)
+      && strncmp (os_dev, "/dev/mapper/mpath" != 0)
     return GRUB_DEV_ABSTRACTION_LVM;
 
   /* Check for RAID.  */