[GSoC][RFC] Case Insensitive Filesystem

Marc Andre Tanner mat at brain-dump.org
Tue Mar 25 16:33:51 CDT 2008


Hi,

During the last week i have been playing around with the idea
of writing a case insensitive fuse filesystem and i am know 
at the point were i can demonstrate a proof of concept 
implementation. And yes i have seen that there is already 
someone else interested in doing this but i thought it was fun
anyways.

The filesystem converts every path to lower case before further
operations take place. On file creation the original filename is
stored in an extended attribute and later returned upon request.

This means you will have a directory on a regular POSIX filesystem
with all filenames in lower case, this directory can then be mounted
in case insensitive fashion.

In order to compile the code you will need the fuse and libattr[1]
development files. Furthermore you will have to make sure that the
underlying filesystem supports extended attributes (for example 
for ext{2,3} you need a kernel with CONFIG_EXT{2,3}_FS_XATTR enabled). 
You probably also want to mount the underlying filesystem with the 
user_xattr option which allows non root users to create	extended 
attributes.

So fetch the code from the url below, extract the archive and type
make. This should generate a binary named ciopfs (which stands for
Case Insenstive On Purpose File System, alternative naming suggestions 
are welcome ;).
 
 http://www.brain-dump.org/projects/ciopfs/ciopfs-25.03.2008.tar.gz

Mounting the file system is straight forward, see `ciopfs -h` for
further options. But be carefull i haven't yet done any serious
testing, so only use it with unimportant data [insert standard 
warning about possible data loss here].

 ciopfs /path/to/my/directory /path/to/my/mountpoint

As i said before the current implementation is just a proof of
concept. That's why it currently only supports ascii filenames, or
whatever tolower(3) can cope with. This brings us to another 
problem[2,3], in certain languages there isn't a direct mapping 
between upper and lower case characters and case insensitivity in
filesystem is generally a bad thing.

Any comments are appreciated.

Regards,
Marc

[1] http://acl.bestbits.at/download.html#Attr
[2] http://www.somethinkodd.com/oddthinking/2005/10/25/the-world-of-upper-lower-case-mappings/
[3] http://drewthaler.blogspot.com/2007/12/case-against-insensitivity.html
-- 
 Marc Andre Tanner >< http://www.brain-dump.org/ >< GPG key: CF7D56C0



More information about the wine-devel mailing list