Blob Blame History Raw
From: Valdimir Serbinenko <phcoder@gmail.com>
Subject: Don't canonicalise /dev/root and /dev/dm-*.

upstream rev 4408

--- a/util/getroot.c	2012-05-28 15:43:12 +0000
+++ b/util/getroot.c	2012-06-02 12:36:27 +0000
@@ -1036,10 +1036,16 @@
 	{
 	  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)