[packages/grub2] upstream fix for "error: unknown filesystem" on ext4 fs with metadata_csum_seed; rel 4

atler atler at pld-linux.org
Tue Jun 20 17:43:25 CEST 2023


commit 4802f4f257f9c213f6020b19575519e193577580
Author: Jan Palus <atler at pld-linux.org>
Date:   Tue Jun 20 15:56:28 2023 +0200

    upstream fix for "error: unknown filesystem" on ext4 fs with metadata_csum_seed; rel 4

 grub2.spec                           |  4 ++-
 ignore-ext4-metadata_csum_seed.patch | 59 ++++++++++++++++++++++++++++++++++++
 2 files changed, 62 insertions(+), 1 deletion(-)
---
diff --git a/grub2.spec b/grub2.spec
index c70e42d..31380d3 100644
--- a/grub2.spec
+++ b/grub2.spec
@@ -144,7 +144,7 @@ Summary(pl.UTF-8):	GRUB2 - bootloader dla x86 i ppc
 Summary(pt_BR.UTF-8):	Gerenciador de inicialização GRUB2
 Name:		grub2
 Version:	2.06
-Release:	3
+Release:	4
 License:	GPL v2
 Group:		Base
 Source0:	https://ftp.gnu.org/gnu/grub/grub-%{version}.tar.xz
@@ -168,6 +168,7 @@ Patch13:	efi-net-fix.patch
 Patch14:	blscfg.patch
 Patch15:        0193-fs-xfs-Fix-unreadable-filesystem-with-v4-superblock.patch
 Patch16:        0268-grub_fs_probe-dprint-errors-from-filesystems.patch
+Patch17:        ignore-ext4-metadata_csum_seed.patch
 URL:		http://www.gnu.org/software/grub/
 BuildRequires:	autoconf >= 2.63
 BuildRequires:	automake >= 1:1.11.1-1
@@ -538,6 +539,7 @@ Motyw starfield dla GRUB-a.
 %patch14 -p1
 %patch15 -p1
 %patch16 -p1
+%patch17 -p1
 
 # we don't have C.utf-8 and need an UTF-8 locale for build
 sed -i -e 's/LC_ALL=C.UTF-8/LC_ALL=en_US.utf-8/g' po/Makefile* po/Rules*
diff --git a/ignore-ext4-metadata_csum_seed.patch b/ignore-ext4-metadata_csum_seed.patch
new file mode 100644
index 0000000..27b2277
--- /dev/null
+++ b/ignore-ext4-metadata_csum_seed.patch
@@ -0,0 +1,59 @@
+From 7fd5feff97c4b1f446f8fcf6d37aca0c64e7c763 Mon Sep 17 00:00:00 2001
+From: Javier Martinez Canillas <javierm at 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 <esandeen at redhat.com>
+Suggested-by: Lukas Czerner <lczerner at redhat.com>
+Signed-off-by: Javier Martinez Canillas <javierm at redhat.com>
+Reviewed-by: Lukas Czerner <lczerner at redhat.com>
+Reviewed-by: Daniel Kiper <daniel.kiper at 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
+
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/grub2.git/commitdiff/4802f4f257f9c213f6020b19575519e193577580



More information about the pld-cvs-commit mailing list