diff options
author | Jaegeuk Kim <jaegeuk@kernel.org> | 2020-07-17 20:10:21 -0700 |
---|---|---|
committer | Jaegeuk Kim <jaegeuk@kernel.org> | 2020-07-20 17:39:02 -0700 |
commit | 3aef9bc8209d0629322439fa2d97a8c0a79ba797 (patch) | |
tree | a6b4c3f1c20b32dd210b520a97b4c93a5cd7d172 | |
parent | ec0f3c910e7d6a7a8d443d83658a9e7cd997a4d8 (diff) | |
download | f2fs-tools-3aef9bc8209d0629322439fa2d97a8c0a79ba797.tar.gz |
mkfs.f2fs: add casefolding and project quota config
This can be used for Android build support.
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
-rw-r--r-- | include/f2fs_fs.h | 1 | ||||
-rw-r--r-- | lib/libf2fs.c | 11 | ||||
-rw-r--r-- | mkfs/f2fs_format_main.c | 14 |
3 files changed, 26 insertions, 0 deletions
diff --git a/include/f2fs_fs.h b/include/f2fs_fs.h index f60dc0f..3323be1 100644 --- a/include/f2fs_fs.h +++ b/include/f2fs_fs.h @@ -1527,6 +1527,7 @@ extern const struct f2fs_nls_table *f2fs_load_nls_table(int encoding); #define F2FS_ENC_UTF8_12_0 1 extern int f2fs_str2encoding(const char *string); +extern char *f2fs_encoding2str(const int encoding); extern int f2fs_get_encoding_flags(int encoding); extern int f2fs_str2encoding_flags(char **param, __u16 *flags); diff --git a/lib/libf2fs.c b/lib/libf2fs.c index 5937076..55fa391 100644 --- a/lib/libf2fs.c +++ b/lib/libf2fs.c @@ -1306,6 +1306,17 @@ int f2fs_str2encoding(const char *string) return -EINVAL; } +char *f2fs_encoding2str(const int encoding) +{ + int i; + + for (i = 0 ; i < ARRAY_SIZE(f2fs_encoding_map); i++) + if (f2fs_encoding_map[i].encoding_magic == encoding) + return f2fs_encoding_map[i].name; + + return NULL; +} + int f2fs_get_encoding_flags(int encoding) { int i; diff --git a/mkfs/f2fs_format_main.c b/mkfs/f2fs_format_main.c index 0d77a77..90c8759 100644 --- a/mkfs/f2fs_format_main.c +++ b/mkfs/f2fs_format_main.c @@ -89,6 +89,12 @@ static void f2fs_show_info() if (c.defset == CONF_ANDROID) MSG(0, "Info: Set conf for android\n"); + + if (c.feature & le32_to_cpu(F2FS_FEATURE_CASEFOLD)) + MSG(0, "Info: Enable %s with casefolding\n", + f2fs_encoding2str(c.s_encoding)); + if (c.feature & le32_to_cpu(F2FS_FEATURE_PRJQUOTA)) + MSG(0, "Info: Enable Project quota\n"); } static void add_default_options(void) @@ -105,6 +111,14 @@ static void add_default_options(void) c.root_uid = c.root_gid = 0; break; } +#ifdef CONF_CASEFOLD + c.s_encoding = F2FS_ENC_UTF8_12_1; + c.feature |= cpu_to_le32(F2FS_FEATURE_CASEFOLD); +#endif +#ifdef CONF_PROJID + c.feature |= cpu_to_le32(F2FS_FEATURE_PRJQUOTA); + c.feature |= cpu_to_le32(F2FS_FEATURE_EXTRA_ATTR); +#endif } static void f2fs_parse_options(int argc, char *argv[]) |