case-sensitivity-20040506
authorJeffrey Altman <jaltman@mit.edu>
Thu, 6 May 2004 16:17:29 +0000 (16:17 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Thu, 6 May 2004 16:17:29 +0000 (16:17 +0000)
commit9552283298757ca7f44643a5a26cf909e12c589f
treef52d29642a6a6622669333c3eb34a7f091d0496b
parent786ead5cef01d76169a4fec33a6eb584fa5cea5e
case-sensitivity-20040506

from asanka@mit.edu

We now strictly prefer exact case matches.  This does incur a
performance penalty because we can no longer be satisfied with an
inexact matches in cache (we make an extra trip to the server to make
sure there aren't any exact matches or pick up the extra match if
there is one).  Of course, the name lookup cache is now case
sensitive.

* cm_dnlc.c : case sensitive name lookup cache
* cm_vnodeops.{c,h} : changes to cm_Lookup to first look for exact matches,
failing which, look for inexact matches.  Also, only put a name in
the name lookup cache iff it exactly matches something on the server.
* smb.c : look for exact matches first.
* smb3.c : as above.  Also T2 Search is used by the SMB client to resolve
filenames.  Respond accordingly.

and:

* added new CM_ERROR_AMBIGUOUS_FILENAME mapped to ERROR_POTENTIAL_FILE_FOUND
  This error is not yet used but is intended for situations in which an
  AFS volume contains two files which differ only by case "Foo" and "FOO"
  and the user says "DEL foo".  Since we do not have an exact match by case
  the existing code deletes one of the two files at random.  In the future
  we want to return an error.
src/WINNT/afsd/cm.h
src/WINNT/afsd/cm_dnlc.c
src/WINNT/afsd/cm_vnodeops.c
src/WINNT/afsd/cm_vnodeops.h
src/WINNT/afsd/smb.c
src/WINNT/afsd/smb3.c