2020-12-17 17:37:06

by Arnaud Ferraris

[permalink] [raw]
Subject: [PATCH v3 01/12] tune2fs: Allow enabling casefold feature after fs creation

From: Gabriel Krisman Bertazi <[email protected]>

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 <[email protected]>
Signed-off-by: Arnaud Ferraris <[email protected]>
---
Changes in v3:
- removed extra lines

misc/tune2fs.c | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/misc/tune2fs.c b/misc/tune2fs.c
index f942c698..f766bfa5 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,18 @@ 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))
--
2.29.2


2021-01-28 03:02:31

by Theodore Ts'o

[permalink] [raw]
Subject: Re: [PATCH v3 01/12] tune2fs: Allow enabling casefold feature after fs creation

On Thu, Dec 17, 2020 at 06:35:33PM +0100, Arnaud Ferraris wrote:
> From: Gabriel Krisman Bertazi <[email protected]>
>
> 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 <[email protected]>
> Signed-off-by: Arnaud Ferraris <[email protected]>

Thanks, applied.

- Ted