guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

02/02: gnu: grub: Ignore metadata-csum-seed feature of ext4.


From: guix-commits
Subject: 02/02: gnu: grub: Ignore metadata-csum-seed feature of ext4.
Date: Mon, 27 May 2024 13:32:30 -0400 (EDT)

lbraun pushed a commit to branch master
in repository guix.

commit 00384aedbc6a371aaf90ca344a446952fdd5a6b3
Author: Lars-Dominik Braun <lars@6xq.net>
AuthorDate: Sun May 26 17:03:01 2024 +0200

    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
---
 gnu/local.mk                                       |  1 +
 gnu/packages/bootloaders.scm                       |  3 +-
 .../patches/grub-ignore-metadata-csum-seed.patch   | 54 ++++++++++++++++++++++
 3 files changed, 57 insertions(+), 1 deletion(-)

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 @@
                 "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
+ 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]