Theodore Ts'o <tytso@xxxxxxx> writes: Hi Ted, > This isn't a complete implementation of my proposal. In particular > one of the things which is missing is: > > 1. If case-insensitivity is enabled, override the default dcache hash > and compare operations to ones that are case insensitive in ext4's > dcache_operations structure. > > This is needed so there is a single dcache entry for case-folded file > names. Sorry for the delay in replying. In fact, the dcache hash operations were part of my original patch, but I dropped it before submitting in favor of d_add_ci(), which I expected would prevent duplication of the same elements, differing only by case in the dentry cache. I have shared it in a different branch if you want to take a look. git://git.collabora.com/git/user/krisman/linux.git -b ext4-insensitive-dcache-patch Despite that, I've been learning my way in the VFS subsystem, investigating the suggestion made by you and HCH on the thread I mentioned: > I talked to Christoph at the Plumbers Closing party, and he suggested > that we get something simple in first which (a) assumes no on-disk > format changes, (b) does everything in the VFS layer, by using a > MS_CASE_FOLD, uses a case-insensitive dentry hash, and which degrades > to a brute force search in the VFS by using readdir interfaces if the > direct lookup does not succeed, and (c) at least initially assumes > only ASCII. My current question on this approach is how the MS_CASE_FOLD could be exposed to userspace. It is not any system call that can receive a new flag to request an insensitive lookup. In this case, are you considering a new set of system calls to perform case-insensitive lookups, some per-process thing or another approach I'm not considering? Can you provide me with more information on this? Thanks for helping out on reviewing my code. -- Gabriel Krisman Bertazi