]> git.proxmox.com Git - grub2.git/commitdiff
Scan mdraid before LVM.
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Wed, 18 Apr 2012 21:11:33 +0000 (23:11 +0200)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Wed, 18 Apr 2012 21:11:33 +0000 (23:11 +0200)
* include/grub/diskfilter.h (grub_diskfilter_register): Renamed to ..
(grub_diskfilter_register_front): ... this.
(grub_diskfilter_register_back): New function.
All users of grub_diskfilter_register updated.

ChangeLog
grub-core/disk/dmraid_nvidia.c
grub-core/disk/ldm.c
grub-core/disk/lvm.c
grub-core/disk/mdraid1x_linux.c
grub-core/disk/mdraid_linux.c
include/grub/diskfilter.h

index 23dac4858b11c78ed769b46dea40618712dff84b..e9e0edde67523f37a91c17bca7aa00ff4db24dea 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2012-04-18  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       Scan mdraid before LVM.
+
+       * include/grub/diskfilter.h (grub_diskfilter_register): Renamed to ..
+       (grub_diskfilter_register_front): ... this.
+       (grub_diskfilter_register_back): New function.
+       All users of grub_diskfilter_register updated.
+
 2012-04-18  Vladimir Serbinenko  <phcoder@gmail.com>
 
        * util/grub-install.in: Fix an automatic target detection bug.
index e0d7a2e9824807213789ca1f0dc235531ec3c47a..7b03e90362f859632042b500e07477f37710f589 100644 (file)
@@ -177,7 +177,7 @@ static struct grub_diskfilter grub_dmraid_nv_dev =
 
 GRUB_MOD_INIT(dm_nv)
 {
-  grub_diskfilter_register (&grub_dmraid_nv_dev);
+  grub_diskfilter_register_front (&grub_dmraid_nv_dev);
 }
 
 GRUB_MOD_FINI(dm_nv)
index 5a36d26be5096fe3e3d177ff12f688054da743f9..0e4761b5a0fdc196045192189cc454c93a33550f 100644 (file)
@@ -1001,7 +1001,7 @@ static struct grub_diskfilter grub_ldm_dev = {
 
 GRUB_MOD_INIT (ldm)
 {
-  grub_diskfilter_register (&grub_ldm_dev);
+  grub_diskfilter_register_back (&grub_ldm_dev);
 }
 
 GRUB_MOD_FINI (ldm)
index d7be3e8a5a0100425525eec82a68ee7b55c520c2..e0cf880cf2d871ae2d1f289db0d58f10c419dabc 100644 (file)
@@ -756,7 +756,7 @@ static struct grub_diskfilter grub_lvm_dev = {
 
 GRUB_MOD_INIT (lvm)
 {
-  grub_diskfilter_register (&grub_lvm_dev);
+  grub_diskfilter_register_back (&grub_lvm_dev);
 }
 
 GRUB_MOD_FINI (lvm)
index 49d0ff46737dbd41bf384fc33e85284c60cf2952..a0e65a8cc41505f3f73fd187f0c20ed4aee8397b 100644 (file)
@@ -224,7 +224,7 @@ static struct grub_diskfilter grub_mdraid_dev = {
 
 GRUB_MOD_INIT (mdraid1x)
 {
-  grub_diskfilter_register (&grub_mdraid_dev);
+  grub_diskfilter_register_front (&grub_mdraid_dev);
 }
 
 GRUB_MOD_FINI (mdraid1x)
index 961020950cbd9849c69e08d2f3f0806caad451f2..f408fd37ef0be90a4eb35045df8a332cd30c4cd5 100644 (file)
@@ -274,7 +274,7 @@ GRUB_MOD_INIT (mdraid09_be)
 GRUB_MOD_INIT (mdraid09)
 #endif
 {
-  grub_diskfilter_register (&grub_mdraid_dev);
+  grub_diskfilter_register_front (&grub_mdraid_dev);
 }
 
 #ifdef MODE_BIGENDIAN
index 95754564d582538e200e42d56769ef519069b85c..38bb3adddc0fb58cdc90148189b94e7f4b1aad60 100644 (file)
@@ -148,11 +148,21 @@ typedef struct grub_diskfilter *grub_diskfilter_t;
 
 extern grub_diskfilter_t grub_diskfilter_list;
 static inline void
-grub_diskfilter_register (grub_diskfilter_t diskfilter)
+grub_diskfilter_register_front (grub_diskfilter_t diskfilter)
 {
   grub_list_push (GRUB_AS_LIST_P (&grub_diskfilter_list),
                  GRUB_AS_LIST (diskfilter));
 }
+
+static inline void
+grub_diskfilter_register_back (grub_diskfilter_t diskfilter)
+{
+  grub_diskfilter_t p, *q;
+  for (q = &grub_diskfilter_list, p = *q; p; q = &p->next, p = *q);
+  diskfilter->next = NULL;
+  diskfilter->prev = q;
+  *q = diskfilter;
+}
 static inline void
 grub_diskfilter_unregister (grub_diskfilter_t diskfilter)
 {