At 3:24 PM -0700 7/7/02, Richard Sharpe wrote: >On Sun, 7 Jul 2002, Conrad Minshall wrote: > >> At 7:19 PM -0700 7/4/02, Richard Sharpe wrote:
>> >The current situation with respect to preserve case = yes and case >> >sensitive = no causes many problems. >> > >> >I recently ran a build of a lot of software under Windows that was mounted >> >on a file server, and lots of really silly things happen. This software >> >goes looking for include files in a list of directories, and every request >> >to open a file that does not exist in a particular include directory, or >> >one that is not the case that was first presented, causes Samba to do a >> >readdir scan of the directory that the name was contained in. This can >> >cause thousands to millions of scans :-( >> > >> >An altrnative might be to convert all names to the default case (preserve >> >case = No) and then do case sensitive matches (case sensitive = yes). >> > >> >What is the down-side to this? >> >> Sometimes one want to simultaneously export a filesystem as both NFS and >> CIFS (and AppleShare, in my environment). Samba must preserve case so the >> other protocols can behave reasonably, yes? > >Hmmm, I didn't explain what I wanted well enough :-) > >I want to preserve case sensitive behaviour for NFS and UNIX clients, >while reducing the current high cost to CIFS users of providing >case-insensitive behaviour. Nice goal. If you had a case-insensitive local filesystem, like a Mac or a PC, then that particular performance issue wouldn't exist. (Don't get me wrong, I dislike case-insensitivity for many reasons, for instance it breaks kernel "negative-name-cacheing".) My point was only that being non-case-preserving will break other users of the local filesystem. A trivial & contrived example: client A smb-mounts sharepoint M from server S client B nfs-mounts M from server S client A creates a file in M, naming it "Foo" (server A creates a monocase file, "foo" for instance) client A finished initializing Foo client A appends "Foo" to file "tobeprocessed" client B notices the addition to "tobeprocessed" client B fails to find "Foo". Oops. In general, the point is that filenames are often imbedded into data, and that using any non-case-preserving network file system is likely to break case-sensitive filesystem accesses to the underlying shared metadata. No doubt I'm stating the obvious. Sorry if all this was clear from my first response. -- Conrad Minshall, [EMAIL PROTECTED], 408 974-2749 Apple Computer, Mac OS X Core Operating Systems
