Message ID | 20201210150353.91843-2-arnaud.ferraris@collabora.com |
---|---|
State | Superseded |
Headers | show |
Series | e2fsprogs: improve case-insensitive fs | expand |
On Thu, Dec 10, 2020 at 04:03:42PM +0100, Arnaud Ferraris wrote: > From: Gabriel Krisman Bertazi <krisman@collabora.com> > > The main reason we didn't allow this before was because !CASEFOLDED > directories were expected to be normalized(). Since this is no longer > the case, and as long as the encrypt feature is not enabled, it should > be safe to enable this feature. > > Disabling the feature is trickier, since we need to make sure there are > no existing +F directories in the filesystem. Leave that for a future > patch. > > Also, enabling strict mode requires some filesystem-wide verification, > so ignore that for now. > > Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.com> > Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com> Thanks, applied. - Ted
diff --git a/misc/tune2fs.c b/misc/tune2fs.c index f942c698..0809e565 100644 --- a/misc/tune2fs.c +++ b/misc/tune2fs.c @@ -161,7 +161,8 @@ static __u32 ok_features[3] = { EXT4_FEATURE_INCOMPAT_64BIT | EXT4_FEATURE_INCOMPAT_ENCRYPT | EXT4_FEATURE_INCOMPAT_CSUM_SEED | - EXT4_FEATURE_INCOMPAT_LARGEDIR, + EXT4_FEATURE_INCOMPAT_LARGEDIR | + EXT4_FEATURE_INCOMPAT_CASEFOLD, /* R/O compat */ EXT2_FEATURE_RO_COMPAT_LARGE_FILE | EXT4_FEATURE_RO_COMPAT_HUGE_FILE| @@ -1513,6 +1514,19 @@ mmp_error: } } + if (FEATURE_ON(E2P_FEATURE_INCOMPAT, EXT4_FEATURE_INCOMPAT_CASEFOLD)) { + if (ext2fs_has_feature_encrypt(sb)) { + fputs(_("Cannot enable casefold feature on filesystems " + "with the encrypt feature enabled.\n"), + stderr); + return 1; + } + + sb->s_encoding = EXT4_ENC_UTF8_12_1; + sb->s_encoding_flags = e2p_get_encoding_flags(sb->s_encoding); + } + + if (sb->s_rev_level == EXT2_GOOD_OLD_REV && (sb->s_feature_compat || sb->s_feature_ro_compat || sb->s_feature_incompat))