diff options
Diffstat (limited to 'meta/recipes-bsp/grub/grub-1.99/grub-1.99-lazy_stat.patch')
-rw-r--r-- | meta/recipes-bsp/grub/grub-1.99/grub-1.99-lazy_stat.patch | 64 |
1 files changed, 0 insertions, 64 deletions
diff --git a/meta/recipes-bsp/grub/grub-1.99/grub-1.99-lazy_stat.patch b/meta/recipes-bsp/grub/grub-1.99/grub-1.99-lazy_stat.patch deleted file mode 100644 index cde8b87a47..0000000000 --- a/meta/recipes-bsp/grub/grub-1.99/grub-1.99-lazy_stat.patch +++ /dev/null @@ -1,64 +0,0 @@ -Upstream-Status: Backport - -Patch is a slightly edited version from debian. Upstream link is: -http://bzr.savannah.gnu.org/lh/grub/trunk/grub/revision/3318 - -Description: Don't stat devices unless we have to -Author: Vladimir Serbinenko <phcoder@gmail.com> -Author: Colin Watson <cjwatson@ubuntu.com> -Bug-Debian: http://bugs.debian.org/627587 -Forwarded: yes -Applied-Upstream: http://bazaar.launchpad.net/~vcs-imports/grub/grub2-bzr/revision/3318 -Last-Update: 2011-05-31 - -Index: b/grub-core/kern/emu/getroot.c -=================================================================== ---- a/grub-core/kern/emu/getroot.c -+++ b/grub-core/kern/emu/getroot.c -@@ -358,7 +358,7 @@ - - if (S_ISLNK (st.st_mode)) { - #ifdef __linux__ -- if (strcmp (dir, "mapper") == 0) { -+ if (strcmp (dir, "mapper") == 0 || strcmp (dir, "/dev/mapper") == 0) { - /* Follow symbolic links under /dev/mapper/; the canonical name - may be something like /dev/dm-0, but the names under - /dev/mapper/ are more human-readable and so we prefer them if -@@ -609,20 +609,27 @@ - - if (os_dev) - { -- if (stat (os_dev, &st) >= 0) -- dev = st.st_rdev; -- else -- grub_util_error ("cannot stat `%s'", os_dev); -- free (os_dev); -+ char *tmp = os_dev; -+ os_dev = canonicalize_file_name (os_dev); -+ free (tmp); - } -- else -+ -+ if (os_dev) - { -- if (stat (dir, &st) >= 0) -- dev = st.st_dev; -- else -- grub_util_error ("cannot stat `%s'", dir); -+ if (strncmp (os_dev, "/dev/dm-", sizeof ("/dev/dm-") - 1) != 0) -+ return os_dev; -+ if (stat (os_dev, &st) < 0) -+ grub_util_error ("cannot stat `%s'", os_dev); -+ free (os_dev); -+ dev = st.st_rdev; -+ return grub_find_device ("/dev/mapper", dev); - } - -+ if (stat (dir, &st) < 0) -+ grub_util_error ("cannot stat `%s'", dir); -+ -+ dev = st.st_dev; -+ - #ifdef __CYGWIN__ - /* Cygwin specific function. */ - os_dev = grub_find_device (dir, dev); |