]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
lvm: Match all LVM segments before validation
authorPatrick Plenefisch <simonpatp@gmail.com>
Sat, 4 Jan 2025 20:00:36 +0000 (15:00 -0500)
committerDaniel Kiper <daniel.kiper@oracle.com>
Wed, 5 Mar 2025 20:24:48 +0000 (21:24 +0100)
The PV matching must be completely finished before validating a volume,
otherwise referenced RAID stripes may not have PV data applied yet.

This change is required for integrity & cachevol support.

Signed-off-by: Patrick Plenefisch <simonpatp@gmail.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
grub-core/disk/diskfilter.c

index 78d6a15db36454149da74bb21537324b34bda505..cc506269197fa9a4691cde9604e70afec62733a5 100644 (file)
@@ -980,8 +980,6 @@ grub_diskfilter_vg_register (struct grub_diskfilter_vg *vg)
 
   for (lv = vg->lvs; lv; lv = lv->next)
     {
-      grub_err_t err;
-
       /* RAID 1 and single-disk RAID 0 don't use a chunksize but code
          assumes one so set one. */
       for (i = 0; i < lv->segment_count; i++)
@@ -993,6 +991,10 @@ grub_diskfilter_vg_register (struct grub_diskfilter_vg *vg)
              && lv->segments[i].stripe_size == 0)
            lv->segments[i].stripe_size = 64;
        }
+    }
+  for (lv = vg->lvs; lv; lv = lv->next)
+    {
+      grub_err_t err;
 
       err = validate_lv(lv);
       if (err)