OpenAFS CVS Commit: openafs/src/WINNT/afsd by jaltman

Wed, 12 Sep 2007 13:29:44 EDT

Update of /cvs/openafs/src/WINNT/afsd
In directory GRAND.CENTRAL.ORG:/home/jaltman/openafs/cvs-1-5/src/WINNT/afsd

Modified Files:
      Tag: openafs-devel-1_5_x
	cm_btree.c cm_btree.h 
Log Message:
DELTA DEVEL15-windows-dir-bplus-shortnames-20070912

When a file name does not conform to 8.3 notation, an 8.3 notation
alias is generated for it.  This short name form must be searchable
in the B+ tree.

This commit adds a longname field to the data node which is used both
to identify the real name associated with the short name as well as
whether or not the short name is in fact an alias.   Being able to
determine whether or not a data node is an alias will be important
when we support using the B+ tree for directory enumeration.

For insertion, if the name does not conform to 8.3 notation, a second
entry is inserted into the B+ tree using the shortname as the key and
the longname stored in the data.

For deletion, we lookup the data node for the provided key.  If there
is a longname we remove the longname entry first and then the shortname
entry.  If the key is a longname, we lookup the data node so we can
acquire the FID and then use that to compute the shortname.  We then
remove both the shortname and longname entries from the B+ tree.

--- DELTA config for openafs-devel-1_5_x follows ---
DEVEL15-windows-dir-bplus-shortnames-20070912 openafs/src/WINNT/afsd/cm_btree.c
DEVEL15-windows-dir-bplus-shortnames-20070912 openafs/src/WINNT/afsd/cm_btree.h