commit:     0df5fa7bfab97bfa594d214a78960f44a491bb22
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Mon Feb 13 16:30:22 2023 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Mon Feb 13 16:47:30 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0df5fa7b

sys-boot/grub: backport fix for ext4 checksum seed feature

Closes: https://bugs.gentoo.org/894200
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 .../grub-2.06-fs-ext2-ignore-checksum-seed.patch   | 62 ++++++++++++++++++++++
 .../{grub-2.06-r5.ebuild => grub-2.06-r6.ebuild}   |  1 +
 2 files changed, 63 insertions(+)

diff --git a/sys-boot/grub/files/grub-2.06-fs-ext2-ignore-checksum-seed.patch 
b/sys-boot/grub/files/grub-2.06-fs-ext2-ignore-checksum-seed.patch
new file mode 100644
index 000000000000..9024b479a878
--- /dev/null
+++ b/sys-boot/grub/files/grub-2.06-fs-ext2-ignore-checksum-seed.patch
@@ -0,0 +1,62 @@
+https://bugs.gentoo.org/894200
+https://git.savannah.gnu.org/cgit/grub.git/patch/?id=7fd5feff97c4b1f446f8fcf6d37aca0c64e7c763
+
+From 7fd5feff97c4b1f446f8fcf6d37aca0c64e7c763 Mon Sep 17 00:00:00 2001
+From: Javier Martinez Canillas <javi...@redhat.com>
+Date: Fri, 11 Jun 2021 21:36:16 +0200
+Subject: fs/ext2: Ignore checksum seed incompat feature
+
+This incompat feature is used to denote that the filesystem stored its
+metadata checksum seed in the superblock. This is used to allow tune2fs
+changing the UUID on a mounted metdata_csum filesystem without having
+to rewrite all the disk metadata. However, the GRUB doesn't use the
+metadata checksum at all. So, it can just ignore this feature if it
+is enabled. This is consistent with the GRUB filesystem code in general
+which just does a best effort to access the filesystem's data.
+
+The checksum seed incompat feature has to be removed from the ignore
+list if the support for metadata checksum verification is added to the
+GRUB ext2 driver later.
+
+Suggested-by: Eric Sandeen <esand...@redhat.com>
+Suggested-by: Lukas Czerner <lczer...@redhat.com>
+Signed-off-by: Javier Martinez Canillas <javi...@redhat.com>
+Reviewed-by: Lukas Czerner <lczer...@redhat.com>
+Reviewed-by: Daniel Kiper <daniel.ki...@oracle.com>
+---
+ grub-core/fs/ext2.c | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/grub-core/fs/ext2.c b/grub-core/fs/ext2.c
+index e7dd78e..4953a15 100644
+--- a/grub-core/fs/ext2.c
++++ b/grub-core/fs/ext2.c
+@@ -103,6 +103,7 @@ GRUB_MOD_LICENSE ("GPLv3+");
+ #define EXT4_FEATURE_INCOMPAT_64BIT           0x0080
+ #define EXT4_FEATURE_INCOMPAT_MMP             0x0100
+ #define EXT4_FEATURE_INCOMPAT_FLEX_BG         0x0200
++#define EXT4_FEATURE_INCOMPAT_CSUM_SEED               0x2000
+ #define EXT4_FEATURE_INCOMPAT_ENCRYPT          0x10000
+ 
+ /* The set of back-incompatible features this driver DOES support. Add (OR)
+@@ -123,10 +124,15 @@ GRUB_MOD_LICENSE ("GPLv3+");
+  * mmp:            Not really back-incompatible - was added as such to
+  *                 avoid multiple read-write mounts. Safe to ignore for this
+  *                 RO driver.
++ * checksum seed:  Not really back-incompatible - was added to allow tools
++ *                 such as tune2fs to change the UUID on a mounted metadata
++ *                 checksummed filesystem. Safe to ignore for now since the
++ *                 driver doesn't support checksum verification. However, it
++ *                 has to be removed from this list if the support is added 
later.
+  */
+ #define EXT2_DRIVER_IGNORED_INCOMPAT ( EXT3_FEATURE_INCOMPAT_RECOVER \
+-                                   | EXT4_FEATURE_INCOMPAT_MMP)
+-
++                                   | EXT4_FEATURE_INCOMPAT_MMP \
++                                   | EXT4_FEATURE_INCOMPAT_CSUM_SEED)
+ 
+ #define EXT3_JOURNAL_MAGIC_NUMBER     0xc03b3998U
+ 
+-- 
+cgit v1.1
+

diff --git a/sys-boot/grub/grub-2.06-r5.ebuild 
b/sys-boot/grub/grub-2.06-r6.ebuild
similarity index 99%
rename from sys-boot/grub/grub-2.06-r5.ebuild
rename to sys-boot/grub/grub-2.06-r6.ebuild
index 06b35f228a26..ce30e75b634b 100644
--- a/sys-boot/grub/grub-2.06-r5.ebuild
+++ b/sys-boot/grub/grub-2.06-r6.ebuild
@@ -61,6 +61,7 @@ PATCHES=(
        "${FILESDIR}"/grub-2.06-test-words.patch
        "${FILESDIR}"/grub-2.06-grub-mkconfig-restore-umask.patch
        
"${FILESDIR}"/grub-2.06-gentpl.py-Remove-.interp-section-from-.img-files.patch
+       "${FILESDIR}"/grub-2.06-fs-ext2-ignore-checksum-seed.patch
 )
 
 DEJAVU=dejavu-sans-ttf-2.37

Reply via email to