commit-grub
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[2516] 2009-08-23 Vladimir Serbinenko <address@hidden>


From: Vladimir Serbinenko
Subject: [2516] 2009-08-23 Vladimir Serbinenko <address@hidden>
Date: Sun, 23 Aug 2009 15:27:07 +0000

Revision: 2516
          http://svn.sv.gnu.org/viewvc/?view=rev&root=grub&revision=2516
Author:   phcoder
Date:     2009-08-23 15:27:07 +0000 (Sun, 23 Aug 2009)
Log Message:
-----------
2009-08-23  Vladimir Serbinenko  <address@hidden>

        * commands/search.c (search_fs): Try searching without autoload first.
        * util/grub-mkconfig_lib.in (prepare_grub_to_access_device): Load
        filesystem module explicitly for faster booting.

Modified Paths:
--------------
    trunk/grub2/ChangeLog
    trunk/grub2/commands/search.c
    trunk/grub2/util/grub-mkconfig_lib.in

Modified: trunk/grub2/ChangeLog
===================================================================
--- trunk/grub2/ChangeLog       2009-08-23 15:09:05 UTC (rev 2515)
+++ trunk/grub2/ChangeLog       2009-08-23 15:27:07 UTC (rev 2516)
@@ -1,3 +1,9 @@
+2009-08-23  Vladimir Serbinenko  <address@hidden>
+
+       * commands/search.c (search_fs): Try searching without autoload first.
+       * util/grub-mkconfig_lib.in (prepare_grub_to_access_device): Load
+       filesystem module explicitly for faster booting.
+
 2009-08-23  Colin Watson  <address@hidden>
 
        * util/grub-mkconfig.in: Export GRUB_DISABLE_OS_PROBER.

Modified: trunk/grub2/commands/search.c
===================================================================
--- trunk/grub2/commands/search.c       2009-08-23 15:09:05 UTC (rev 2515)
+++ trunk/grub2/commands/search.c       2009-08-23 15:27:07 UTC (rev 2516)
@@ -51,6 +51,7 @@
 {
   int count = 0;
   char *buf = NULL;
+  grub_fs_autoload_hook_t saved_autoload;
 
   auto int iterate_device (const char *name);
   int iterate_device (const char *name)
@@ -131,8 +132,23 @@
     return (found && var);
   }
 
-  grub_device_iterate (iterate_device);
+  /* First try without autoloading if we're setting variable. */
+  if (var)
+    {
+      saved_autoload = grub_fs_autoload_hook;
+      grub_fs_autoload_hook = 0;
+      grub_device_iterate (iterate_device);
 
+      /* Restore autoload hook.  */
+      grub_fs_autoload_hook = saved_autoload;
+
+      /* Retry with autoload if nothing found.  */
+      if (grub_errno == GRUB_ERR_NONE && count == 0)
+       grub_device_iterate (iterate_device);
+    }
+  else
+    grub_device_iterate (iterate_device);
+
   grub_free (buf);
 
   if (grub_errno == GRUB_ERR_NONE && count == 0)

Modified: trunk/grub2/util/grub-mkconfig_lib.in
===================================================================
--- trunk/grub2/util/grub-mkconfig_lib.in       2009-08-23 15:09:05 UTC (rev 
2515)
+++ trunk/grub2/util/grub-mkconfig_lib.in       2009-08-23 15:27:07 UTC (rev 
2516)
@@ -140,6 +140,11 @@
     echo "insmod ${module}"
   done
 
+  fs="`${grub_probe} --device ${device} --target=fs`"
+  for module in ${fs} ; do
+    echo "insmod ${module}"
+  done
+
   # If there's a filesystem UUID that GRUB is capable of identifying, use it;
   # otherwise set root as per value in device.map.
   echo "set root=`${grub_probe} --device ${device} --target=drive`"





reply via email to

[Prev in Thread] Current Thread [Next in Thread]