[PATCH] gnu: grub: Ignore metadata-csum-seed feature of ext4.

  • Done
  • quality assurance status badge
Details
One participant
  • Lars-Dominik Braun
Owner
unassigned
Submitted by
Lars-Dominik Braun
Severity
normal
L
L
Lars-Dominik Braun wrote on 26 May 17:19 +0200
(address . guix-patches@gnu.org)
a23729caaaee62e63a72e4031eccd09df68f8636.1716736558.git.lars@6xq.net
* gnu/packages/patches/grub-ignore-metadata-csum-seed.patch: New file.
* gnu/local.mk: Register it.
* gnu/packages/bootloaders.scm (grub): Use it.

Change-Id: I3bfed24b38ecf31b85ed4ac654399fca2d2e12f6
---

This patch fixes issue 70480. Validated using the root-unmount system test.

gnu/local.mk | 1 +
gnu/packages/bootloaders.scm | 3 +-
.../grub-ignore-metadata-csum-seed.patch | 54 +++++++++++++++++++
3 files changed, 57 insertions(+), 1 deletion(-)
create mode 100644 gnu/packages/patches/grub-ignore-metadata-csum-seed.patch

Toggle diff (91 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index 502e97ecd5..7e9e1ebcf0 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1415,6 +1415,7 @@ dist_patch_DATA = \
%D%/packages/patches/groovy-add-exceptionutilsgenerator.patch \
%D%/packages/patches/grub-efi-fat-serial-number.patch \
%D%/packages/patches/grub-setup-root.patch \
+ %D%/packages/patches/grub-ignore-metadata-csum-seed.patch \
%D%/packages/patches/guile-1.8-cpp-4.5.patch \
%D%/packages/patches/guile-2.2-skip-oom-test.patch \
%D%/packages/patches/guile-2.2-skip-so-test.patch \
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 20af6fcee1..f37344c25b 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -113,7 +113,8 @@ (define-public grub
"1qbycnxkx07arj9f2nlsi9kp0dyldspbv07ysdyd34qvz55a97mp"))
(patches (search-patches
"grub-efi-fat-serial-number.patch"
- "grub-setup-root.patch"))
+ "grub-setup-root.patch"
+ "grub-ignore-metadata-csum-seed.patch"))
(modules '((guix build utils)))
(snippet
'(begin
diff --git a/gnu/packages/patches/grub-ignore-metadata-csum-seed.patch b/gnu/packages/patches/grub-ignore-metadata-csum-seed.patch
new file mode 100644
index 0000000000..cd9b897aa6
--- /dev/null
+++ b/gnu/packages/patches/grub-ignore-metadata-csum-seed.patch
@@ -0,0 +1,54 @@
+commit 7fd5feff97c4b1f446f8fcf6d37aca0c64e7c763
+Author: Javier Martinez Canillas <javierm@redhat.com>
+Date: Fri Jun 11 21:36:16 2021 +0200
+
+ 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@redhat.com>
+ Suggested-by: Lukas Czerner <lczerner@redhat.com>
+ Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
+ Reviewed-by: Lukas Czerner <lczerner@redhat.com>
+ Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
+
+diff --git a/grub-core/fs/ext2.c b/grub-core/fs/ext2.c
+index e7dd78e66..4953a1591 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
+

base-commit: 83fc6c7f72fcab3a68c82dd02f872429d632a2c0
prerequisite-patch-id: f5b496d7bc4037f90bafa2f243ec14cc4440fb70
--
2.44.1
L
L
Lars-Dominik Braun wrote on 27 May 19:32 +0200
Re: bug#71210: Acknowledgement ([PATCH] gnu: grub: Ignore metadata-csum-seed feature of ext4.)
(address . 71210-done@debbugs.gnu.org)
ZlTDt5P3yRR7vmpQ@noor.fritz.box
Hi,

I pushed this patch as 00384aedbc6a371aaf90ca344a446952fdd5a6b3 after (positive) feedback from IRC.

Lars
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 71210@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 71210
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch