• Daniel Rosenberg's avatar
    f2fs: include charset encoding information in the superblock · 5aba5430
    Daniel Rosenberg authored
    Add charset encoding to f2fs to support casefolding. It is modeled after
    the same feature introduced in commit c83ad55e ("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: default avatarDaniel Rosenberg <drosen@google.com>
    Reviewed-by: default avatarChao Yu <yuchao0@huawei.com>
    Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
    5aba5430
f2fs.h 116 KB