The case-insensitive implementations in f2fs and ext4 have quite a bit of duplicated code. This series simplifies the ext4 version, with the goal of extracting ext4_ci_compare into a helper library that can be used by both filesystems. It also reduces the clutter from many codeguards for CONFIG_UNICODE; as requested by Linus, they are part of the codeflow now. While there, I noticed we can leverage the utf8 functions to detect encoded names that are corrupted in the filesystem. Therefore, it also adds an ext4 error on that scenario, to mark the filesystem as corrupted. This series survived passes of xfstests -g quick. Gabriel Krisman Bertazi (10): ext4: Match the f2fs ci_compare implementation ext4: Simplify the handling of cached insensitive names f2fs: Simplify the handling of cached insensitive names ext4: Implement ci comparison using unicode_name ext4: Simplify hash check on ext4_match ext4: Log error when lookup of encoded dentry fails ext4: Move ext4_match_ci into libfs f2fs: Reuse generic_ci_match for ci comparisons ext4: Move CONFIG_UNICODE defguards into the code flow f2fs: Move CONFIG_UNICODE defguards into the code flow fs/ext4/ext4.h | 41 +++++++-------- fs/ext4/namei.c | 126 ++++++++++++++------------------------------- fs/ext4/super.c | 4 +- fs/f2fs/dir.c | 103 ++++++++++++------------------------ fs/f2fs/f2fs.h | 3 +- fs/f2fs/namei.c | 12 ++--- fs/f2fs/recovery.c | 5 +- fs/f2fs/super.c | 22 ++++---- fs/libfs.c | 61 ++++++++++++++++++++++ include/linux/fs.h | 8 +++ 10 files changed, 185 insertions(+), 200 deletions(-) -- 2.36.1