summaryrefslogtreecommitdiffstats
path: root/debian/patches/987008-lvrename-boot-fail.patch
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--debian/patches/987008-lvrename-boot-fail.patch35
1 files changed, 35 insertions, 0 deletions
diff --git a/debian/patches/987008-lvrename-boot-fail.patch b/debian/patches/987008-lvrename-boot-fail.patch
new file mode 100644
index 0000000..5d5df3e
--- /dev/null
+++ b/debian/patches/987008-lvrename-boot-fail.patch
@@ -0,0 +1,35 @@
+Description: fix renamed LV detection
+ It looks like the detection of the LVM logical volumes fails in
+ certain edge conditions. In particular, it was reported that
+ renaming an LV will make grub fail to boot from the system as it
+ cannot properly detect it anymore.
+ .
+ I have looked at the code surrounding the patch and cannot claim to
+ understand the entire function here, as it is huge and quite
+ cryptic. But it seems sane: the `ptr` we're inspecting here starts
+ at the `rlocn->offset`, but we were adding `mda_size` to the
+ (somewhat) unrelated metadatabuf instead. Now we're marking the
+ `mda_end` correctly, based on the rlocn->offsite and ->size.
+ .
+ I have not tested this myself as the test setup is quite involved,
+ but it seems others (e.g. "Hoyer, David" <David.Hoyer@netapp.com>)
+ have tested the patch and confirmed it worked.
+Author: Rogier <rogier777@gmail.com>
+Origin: other
+Bug: https://savannah.gnu.org/bugs/index.php?61620
+Bug-Debian: https://bugs.debian.org/987008
+Forwarded: https://savannah.gnu.org/bugs/index.php?61620
+Reviewed-By: Antoine Beaupré
+Last-Update: 2023-02-25
+
+--- grub2-2.06.orig/grub-core/disk/lvm.c
++++ grub2-2.06/grub-core/disk/lvm.c
+@@ -290,7 +290,7 @@ grub_lvm_detect (grub_disk_t disk,
+
+ p = q = (char *)ptr;
+
+- if (grub_add ((grub_size_t)metadatabuf, (grub_size_t)mda_size, &ptr))
++ if (grub_add (ptr, (grub_size_t)grub_le_to_cpu64 (rlocn->size), &ptr))
+ goto error_parsing_metadata;
+
+ mda_end = (char *)ptr;