[LSF/MM TOPIC] Support for case-insensitive lookups

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Case-insensitive lookups for filesystems is a recurrent topic for
filesystems, which got some attention in LSF/MM last year, during the
discussion to get free of the Android wrapfs hackery.  This year, I have
been working on an approach to enable bind mount points supporting
casefolding, whose goal is to allow side-by-side lookups of
case-sensitive and case-insensitive names.  This effort has a direct
benefit to the Android filesystem, which requires some racy code to do
this exactly feature, as well as other use cases for SteamOS.

I published an early version with full UTF-8 (based on the SGI
patches) support for performing case-folding in the EXT4 filesystem, as
a RFC to the fsdev mailing list.  The latest thread is here:

https://www.spinics.net/lists/linux-ext4/msg59577.html

Right now, I have focused on adapting the VFS to support a MS_CASEFOLD
VFS flag, which would allow bind mounts, but I am having concerns about
how to best explore the design of the dentry cache to handle multiple
entries only differing by case.  I've been experimenting with multiple
approaches recently and getting live feedback from the community will be
very helpful.

In addition, other semantics for case-insensitive lookups could be
discussed, like how to deal with invalid utf8 sequences, alternatives to
the VFS approach, should it prove itself unreliable, and how to best
adapt the dentry hashes to explore name sequences that only differ by
case and normalization.

-- 
Gabriel Krisman Bertazi



[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux