]> git.proxmox.com Git - grub2.git/commitdiff
* grub-core/kern/emu/getroot.c (grub_guess_root_device): Revert to
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Fri, 24 Jun 2011 02:32:54 +0000 (04:32 +0200)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Fri, 24 Jun 2011 02:32:54 +0000 (04:32 +0200)
old method if mountinfo would return /dev/root and /dev/root doesn't
exist.

ChangeLog
grub-core/kern/emu/getroot.c

index 954166148c05ff7b1dfb9040bf99ec98683025bc..1b63af87136c951d7eb1ad5afc4ae1f735cd3041 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2011-06-24  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       * grub-core/kern/emu/getroot.c (grub_guess_root_device): Revert to
+       old method if mountinfo would return /dev/root and /dev/root doesn't
+       exist.
+
 2011-06-24  Vladimir Serbinenko  <phcoder@gmail.com>
 
        ZFS zlib support
index db27abf7432e1fbd1ba84b0fc236b70eb02e8bce..6d6c8ef8b911c6b6bf12df5c1a327848c1fa25e8 100644 (file)
@@ -620,11 +620,13 @@ grub_guess_root_device (const char *dir)
       int root = (strcmp (os_dev, "/dev/root") == 0);
       if (!dm && !root)
        return os_dev;
-      if (stat (os_dev, &st) < 0)
-       grub_util_error ("cannot stat `%s'", os_dev);
+      if (stat (os_dev, &st) >= 0)
+       {
+         free (os_dev);
+         dev = st.st_rdev;
+         return grub_find_device (dm ? "/dev/mapper" : "/dev", dev);
+       }
       free (os_dev);
-      dev = st.st_rdev;
-      return grub_find_device (dm ? "/dev/mapper" : "/dev", dev);
     }
 
   if (stat (dir, &st) < 0)