[GSoC][RFC] Case Insensitive Filesystem

Marc Andre Tanner mat at brain-dump.org
Wed Mar 26 11:59:10 CDT 2008


On Wed, Mar 26, 2008 at 12:49:16PM +0100, Francois Gouget wrote:
> On Tue, 25 Mar 2008, Marc Andre Tanner wrote:
> [...]
> > 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.
> 
> Shouldn't it be the other way around? I guess the way you've done it is 
> simpler because you can simply rely on the standard kernel code to 
> ensure filename uniqueness, but it also means that anyone accessing the 
> underlying files directly will lose the case information.

Yes that's true the case information is lost but is it really needed? 
If you create the files with the original mixed case you will have to
scan the whole directory in order to match it to a given filename. 
And if i am not mistaken this is exactly what wine does. 

Note also that in the current form having files with upper case letters in 
the underlying directory will cause problems (i will probably just ignore
them in readdir for now). Another quite crazy idea is to transform the
whole directory to lowercase on mount and then on unmount back to the 
original mixed case representation. That would preserve the case information,
but the mount/unmount will be quite expensive and probably cause some
problems if someone is messing around with de underlying directory 
directly.

By the way there is now a git repository available for those who want
to play with it.

  git clone git://repo.or.cz/ciopfs.git

Regards,
Marc

-- 
 Marc Andre Tanner >< http://www.brain-dump.org/ >< GPG key: CF7D56C0



More information about the wine-devel mailing list