Andrew Geissler | fc113ea | 2023-03-31 09:59:46 -0500 | [diff] [blame] | 1 | It enable the metadata_csum_seed feature by default in e2fsprogs 1.47.0 and |
| 2 | causes grub doesn't work. Backport patch to make grub support this feature. |
| 3 | |
| 4 | Upstream-Status: Backport [https://git.savannah.gnu.org/cgit/grub.git/commit/?id=7fd5fef] |
| 5 | |
| 6 | Signed-off-by: Kai Kang <kai.kang@windriver.com> |
| 7 | |
| 8 | From 7fd5feff97c4b1f446f8fcf6d37aca0c64e7c763 Mon Sep 17 00:00:00 2001 |
| 9 | From: Javier Martinez Canillas <javierm@redhat.com> |
| 10 | Date: Fri, 11 Jun 2021 21:36:16 +0200 |
| 11 | Subject: [PATCH] fs/ext2: Ignore checksum seed incompat feature |
| 12 | |
| 13 | This incompat feature is used to denote that the filesystem stored its |
| 14 | metadata checksum seed in the superblock. This is used to allow tune2fs |
| 15 | changing the UUID on a mounted metdata_csum filesystem without having |
| 16 | to rewrite all the disk metadata. However, the GRUB doesn't use the |
| 17 | metadata checksum at all. So, it can just ignore this feature if it |
| 18 | is enabled. This is consistent with the GRUB filesystem code in general |
| 19 | which just does a best effort to access the filesystem's data. |
| 20 | |
| 21 | The checksum seed incompat feature has to be removed from the ignore |
| 22 | list if the support for metadata checksum verification is added to the |
| 23 | GRUB ext2 driver later. |
| 24 | |
| 25 | Suggested-by: Eric Sandeen <esandeen@redhat.com> |
| 26 | Suggested-by: Lukas Czerner <lczerner@redhat.com> |
| 27 | Signed-off-by: Javier Martinez Canillas <javierm@redhat.com> |
| 28 | Reviewed-by: Lukas Czerner <lczerner@redhat.com> |
| 29 | Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com> |
| 30 | --- |
| 31 | grub-core/fs/ext2.c | 10 ++++++++-- |
| 32 | 1 file changed, 8 insertions(+), 2 deletions(-) |
| 33 | |
| 34 | diff --git a/grub-core/fs/ext2.c b/grub-core/fs/ext2.c |
| 35 | index e7dd78e66..4953a1591 100644 |
| 36 | --- a/grub-core/fs/ext2.c |
| 37 | +++ b/grub-core/fs/ext2.c |
| 38 | @@ -103,6 +103,7 @@ GRUB_MOD_LICENSE ("GPLv3+"); |
| 39 | #define EXT4_FEATURE_INCOMPAT_64BIT 0x0080 |
| 40 | #define EXT4_FEATURE_INCOMPAT_MMP 0x0100 |
| 41 | #define EXT4_FEATURE_INCOMPAT_FLEX_BG 0x0200 |
| 42 | +#define EXT4_FEATURE_INCOMPAT_CSUM_SEED 0x2000 |
| 43 | #define EXT4_FEATURE_INCOMPAT_ENCRYPT 0x10000 |
| 44 | |
| 45 | /* The set of back-incompatible features this driver DOES support. Add (OR) |
| 46 | @@ -123,10 +124,15 @@ GRUB_MOD_LICENSE ("GPLv3+"); |
| 47 | * mmp: Not really back-incompatible - was added as such to |
| 48 | * avoid multiple read-write mounts. Safe to ignore for this |
| 49 | * RO driver. |
| 50 | + * checksum seed: Not really back-incompatible - was added to allow tools |
| 51 | + * such as tune2fs to change the UUID on a mounted metadata |
| 52 | + * checksummed filesystem. Safe to ignore for now since the |
| 53 | + * driver doesn't support checksum verification. However, it |
| 54 | + * has to be removed from this list if the support is added later. |
| 55 | */ |
| 56 | #define EXT2_DRIVER_IGNORED_INCOMPAT ( EXT3_FEATURE_INCOMPAT_RECOVER \ |
| 57 | - | EXT4_FEATURE_INCOMPAT_MMP) |
| 58 | - |
| 59 | + | EXT4_FEATURE_INCOMPAT_MMP \ |
| 60 | + | EXT4_FEATURE_INCOMPAT_CSUM_SEED) |
| 61 | |
| 62 | #define EXT3_JOURNAL_MAGIC_NUMBER 0xc03b3998U |
| 63 | |
| 64 | -- |
| 65 | 2.34.1 |
| 66 | |