]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
* util/getroot.c (grub_guess_root_devices): Don't canonicalise
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sat, 2 Jun 2012 12:36:27 +0000 (14:36 +0200)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sat, 2 Jun 2012 12:36:27 +0000 (14:36 +0200)
/dev/root and /dev/dm-*.

ChangeLog
util/getroot.c

index e48883ae25f1e3326203e85a489cc6df604ea7f2..c52567083f4614f9bf75c66da5fc2ec15e6ab168 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2012-06-02  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       * util/getroot.c (grub_guess_root_devices): Don't canonicalise
+       /dev/root and /dev/dm-*.
+
 2012-06-02  Vladimir Serbinenko  <phcoder@gmail.com>
 
        * grub-core/normal/menu_entry.c (update_screen): Fix loop condition to
index 3333a241fd14d47b3268b3ccfdcec05fda9ecd66..042fd7dd52f744ac8f875056c7bfc78be58cecb2 100644 (file)
@@ -1036,10 +1036,16 @@ grub_guess_root_devices (const char *dir)
        {
          char *tmp = *cur;
          int root, dm;
-         *cur = canonicalize_file_name (tmp);
-         if (*cur == NULL)
-           grub_util_error (_("failed to get canonical path of %s"), tmp);
-         free (tmp);
+         if (strcmp (*cur, "/dev/root") == 0
+             || strncmp (*cur, "/dev/dm-", sizeof ("/dev/dm-") - 1) == 0)
+           *cur = tmp;
+         else
+           {
+             *cur = canonicalize_file_name (tmp);
+             if (*cur == NULL)
+               grub_util_error (_("failed to get canonical path of %s"), tmp);
+             free (tmp);
+           }
          root = (strcmp (*cur, "/dev/root") == 0);
          dm = (strncmp (*cur, "/dev/dm-", sizeof ("/dev/dm-") - 1) == 0);
          if (!dm && !root)