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 <swar...@nvidia.com> > Cc: Simon Glass <s...@chromium.org> > Cc: Lukasz Majewski <l.majew...@samsung.com> > Cc: Stefan Roese <s...@denx.de> > Reported-by: Andrew Bradford <andrew.bradf...@kodakalaris.com> > Signed-off-by: Tom Rini <tr...@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
signature.asc
Description: Digital signature
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot