The is exactly the way I have implemented the HFS filesystem, which
also preserves case but is not case sensitive. None of the syscalls
are case sensitive in the sense that if you request "filename" and
"Filename" exists, then you get "Filename". The rename call handles
the "fillename" -> "Filename" move as a special case. creat() (which
really ends up using the open() code) will create the file with the
specified case if it doesn't yet exist in any case variation. I agree
that this seems like the most usable behavior, and suggest that vfat
do likewise.
-- Paul H. Hargrove All material not otherwise attributed hargrove@sccm.stanford.edu is the opinion of the author or a typo.