[U-Boot] [PATCH 1/1] ext4: Refuse to mount filesystems with 64bit feature set
Tom Rini
trini at konsulko.com
Sat Jul 23 00:04:18 CEST 2016
On Fri, Jul 22, 2016 at 05:59:11PM -0400, Tom Rini wrote:
> With e2fsprogs after 1.43 the 64bit and metadata_csum features are
> enabled by default. The metadata_csum feature changes how
> ext4_group_desc->bg_checksum is calculated, which would break write
> support. The 64bit feature however introduces changes such that it
> cannot be read by implementations that do not support it. Since we do
> not support this, we must not mount it.
>
> Cc: Stephen Warren <swarren at nvidia.com>
> Cc: Simon Glass <sjg at chromium.org>
> Cc: Lukasz Majewski <l.majewski at samsung.com>
> Cc: Stefan Roese <sr at denx.de>
> Reported-by: Andrew Bradford <andrew.bradford at kodakalaris.com>
> Signed-off-by: Tom Rini <trini at konsulko.com>
> ---
> This problem has been seen in the wild a few times and reported in many
> places. If you've also found this problem, and reported it, please feel
> free to reply with a Reported-by tag, patchwork will pick them up.
> Further, we should look at adding support for 64bit and metadata_csum
> features as they will be showing up a lot more often now, but that's
> also non-trivial. A graceful fail like this is better than users being
> unable to load their files and being very puzzled.
> ---
> fs/ext4/ext4_common.c | 10 ++++++++++
> include/ext4fs.h | 1 +
> 2 files changed, 11 insertions(+)
>
> diff --git a/fs/ext4/ext4_common.c b/fs/ext4/ext4_common.c
> index 40b798a..eb49fce 100644
> --- a/fs/ext4/ext4_common.c
> +++ b/fs/ext4/ext4_common.c
> @@ -2229,6 +2229,16 @@ int ext4fs_mount(unsigned part_length)
> if (__le16_to_cpu(data->sblock.magic) != EXT2_MAGIC)
> goto fail;
>
> + /*
> + * The 64bit feature was enabled when metadata_csum was enabled
> + * and we do not support metadata_csum (and cannot reliably find
> + * files when it is set. Refuse to mount.
> + */
OK, I wrote the comment before I wrote the commit message, which I wrote
after re-reading
https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout. I got stuck on
metadata_csum being the cause rather than 64bit being the true "we must
not read" problem. I'll re-word the comment to:
The 64bit feature was enabled and this changes a number of data
structures such that we cannot find files. Refuse to mount.
> + if (data->sblock.feature_incompat & EXT4_FEATURE_INCOMPAT_64BIT) {
> + printf("Unsupported feature found (64bit, possibly metadata_csum), not mounting\n");
And this to:
Unsupported feature found: 64bit. Not mounting
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160722/f9f0da82/attachment.sig>
More information about the U-Boot
mailing list