Hi, [[Just for recording at the ML. i am not proposing it for merge with the mountpoint design.]] Just for completeness, this is the code I mentioned at LSFMM, which implements case-insensitive lookups as an attribute of the mountpoint, allowing support for simultaneous case-insensitive and senstive views of the filesystem. It supports a single ci mountpoint like this: mount -o ignorecase,encoding=utf8n-10.0.0 /dev/vda /mnt It allows simultaneous views via a bind,remount, by supporting the parameter ignorecase. Like this: mount -o ignorecase,encoding=utf8n-10.0.0 /dev/vda /mnt mount -o bind /mnt /mnt-ci mount -o remount,bind,ignorecase none /mnt-ci This patchset also enables ext4 ci support, which requires the utf8n implementation I submitted on the other patchset. utf8n is the only encoding supported by this ext4 code, but ascii can be trivially supported with a short patch to implement casefold/strcmp operations. Attempts to mount with other encodings will succeed but will trigger failures when attempting to access the filesystem. This could be improved at the fs layer to provide an error message at mount time. The patchset for utf8n is awaiting review for merge at: https://marc.info/?l=linux-fsdevel&m=152692428419075&w=2 Since the vfs/ext4 support in this patchset is just for the record, and I am not proposing to push this patchset current state anymore, feel free to ignore review for this. If you want an easy way to fetch all the changes required to build this code, including the ucd source files used to generate the decodification tree, you can fetch directly from: https://gitlab.collabora.com/krisman/linux.git -b vfs-ms_casefold-smart Gabriel Krisman Bertazi (13): vfs: Add support for mounting with MS_CASEFOLD vfs: Propagate LOOKUP_CASEFOLD after doing parent lookups vfs: Add support for positive dentries CI lookups in the dentry cache vfs: Allow bind,remount with MS_CASEFOLD vfs: Handle case-exact lookup in d_add_ci vfs: Add Support for hard negative dentries in the dcache vfs: Handle MNT_CASEFOLD in /proc/mounts fscrypt: Introduce charset-based matching functions ext4: Include encoding information on the superblock ext4: Plumb LOOK_CASEFOLD up to ext4 comparison functions ext4: Support charset name matching ext4: Implement ext4 dcache hooks for custom charsets ext4: Notify VFS of support for casefolded mountpoints fs/dcache.c | 95 +++++++++++++++++++++++--------- fs/ext4/dir.c | 48 ++++++++++++++++ fs/ext4/ext4.h | 9 ++- fs/ext4/inline.c | 7 ++- fs/ext4/namei.c | 93 +++++++++++++++++++++---------- fs/ext4/super.c | 49 ++++++++++++++++- fs/namei.c | 98 +++++++++++++++++++++++++++++---- fs/namespace.c | 34 +++++++++--- fs/proc_namespace.c | 1 + include/linux/dcache.h | 24 ++++++-- include/linux/fs.h | 2 + include/linux/fscrypt.h | 1 + include/linux/fscrypt_notsupp.h | 16 ++++++ include/linux/fscrypt_supp.h | 27 +++++++++ include/linux/mount.h | 1 + include/linux/namei.h | 1 + include/uapi/linux/fs.h | 1 + 17 files changed, 423 insertions(+), 84 deletions(-) -- 2.17.0