aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages
diff options
context:
space:
mode:
authorLars-Dominik Braun <lars@6xq.net>2024-05-26 17:03:01 +0200
committerLars-Dominik Braun <lars@6xq.net>2024-05-27 19:30:22 +0200
commit00384aedbc6a371aaf90ca344a446952fdd5a6b3 (patch)
tree728a504389807291582385c3de34f59a0da29f91 /gnu/packages
parented5bf620ea6366d8468e5b7dad9874c6e0e8c661 (diff)
downloadguix-00384aedbc6a371aaf90ca344a446952fdd5a6b3.tar.gz
guix-00384aedbc6a371aaf90ca344a446952fdd5a6b3.zip
gnu: grub: Ignore metadata-csum-seed feature of ext4.
* 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
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/bootloaders.scm3
-rw-r--r--gnu/packages/patches/grub-ignore-metadata-csum-seed.patch54
2 files changed, 56 insertions, 1 deletions
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 @@
"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
+