WSL2-Linux-Kernel/fs/f2fs
Daniel Rosenberg 5aba54302a f2fs: include charset encoding information in the superblock
Add charset encoding to f2fs to support casefolding. It is modeled after
the same feature introduced in commit c83ad55eaa ("ext4: include charset
encoding information in the superblock")

Currently this is not compatible with encryption, similar to the current
ext4 imlpementation. This will change in the future.

>From the ext4 patch:
"""
The s_encoding field stores a magic number indicating the encoding
format and version used globally by file and directory names in the
filesystem.  The s_encoding_flags defines policies for using the charset
encoding, like how to handle invalid sequences.  The magic number is
mapped to the exact charset table, but the mapping is specific to ext4.
Since we don't have any commitment to support old encodings, the only
encoding I am supporting right now is utf8-12.1.0.

The current implementation prevents the user from enabling encoding and
per-directory encryption on the same filesystem at the same time.  The
incompatibility between these features lies in how we do efficient
directory searches when we cannot be sure the encryption of the user
provided fname will match the actual hash stored in the disk without
decrypting every directory entry, because of normalization cases.  My
quickest solution is to simply block the concurrent use of these
features for now, and enable it later, once we have a better solution.
"""

Signed-off-by: Daniel Rosenberg <drosen@google.com>
Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2019-08-23 07:57:13 -07:00
..
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile
acl.c f2fs: Replace spaces with tab 2019-05-08 21:23:11 -07:00
acl.h f2fs: add SPDX license identifiers 2018-09-12 13:07:10 -07:00
checkpoint.c f2fs: add a rw_sem to cover quota flag changes 2019-07-02 15:40:41 -07:00
data.c f2fs: support fiemap() for directory inode 2019-08-23 07:57:11 -07:00
debug.c fs: f2fs: Remove unnecessary checks of SM_I(sbi) in update_general_status() 2019-08-23 07:57:12 -07:00
dir.c f2fs: use generic EFSBADCRC/EFSCORRUPTED 2019-07-02 15:40:41 -07:00
extent_cache.c f2fs: introduce f2fs_<level> macros to wrap f2fs_printk() 2019-07-02 15:40:40 -07:00
f2fs.h f2fs: include charset encoding information in the superblock 2019-08-23 07:57:13 -07:00
file.c f2fs: disallow direct IO in atomic write 2019-08-23 07:57:12 -07:00
gc.c f2fs: fix to read source block before invalidating it 2019-07-26 17:49:04 -07:00
gc.h f2fs: add SPDX license identifiers 2018-09-12 13:07:10 -07:00
hash.c f2fs: add SPDX license identifiers 2018-09-12 13:07:10 -07:00
inline.c f2fs: support fiemap() for directory inode 2019-08-23 07:57:11 -07:00
inode.c f2fs: fix to avoid tagging SBI_QUOTA_NEED_REPAIR incorrectly 2019-08-23 07:57:11 -07:00
namei.c f2fs: fix to spread f2fs_is_checkpoint_ready() 2019-08-23 07:57:11 -07:00
node.c f2fs: use generic EFSBADCRC/EFSCORRUPTED 2019-07-02 15:40:41 -07:00
node.h f2fs: check PageWriteback flag for ordered case 2018-12-26 15:16:56 -08:00
recovery.c f2fs: use generic EFSBADCRC/EFSCORRUPTED 2019-07-02 15:40:41 -07:00
segment.c f2fs: fix to avoid discard command leak 2019-08-23 07:57:11 -07:00
segment.h f2fs: use generic EFSBADCRC/EFSCORRUPTED 2019-07-02 15:40:41 -07:00
shrinker.c f2fs: fix sbi->extent_list corruption issue 2018-12-26 15:16:54 -08:00
super.c f2fs: include charset encoding information in the superblock 2019-08-23 07:57:13 -07:00
sysfs.c f2fs: include charset encoding information in the superblock 2019-08-23 07:57:13 -07:00
trace.c f2fs: do not use mutex lock in atomic context 2019-03-05 19:58:06 -08:00
trace.h f2fs: add SPDX license identifiers 2018-09-12 13:07:10 -07:00
xattr.c f2fs: fix to detect cp error in f2fs_setxattr() 2019-08-23 07:57:11 -07:00
xattr.h f2fs: fix to avoid accessing xattr across the boundary 2019-05-09 09:43:29 -07:00