OpenAFS CVS Commit: openafs/src/WINNT/afsd by jaltman
cvs@GRAND.CENTRAL.ORG
cvs@GRAND.CENTRAL.ORG
Wed, 12 Sep 2007 13:28:00 EDT
Update of /cvs/openafs/src/WINNT/afsd
In directory GRAND.CENTRAL.ORG:/home/jaltman/openafs/cvs-1-3/src/WINNT/afsd
Modified Files:
cm_btree.c cm_btree.h
Log Message:
DELTA windows-dir-bplus-shortnames-20070912
AUTHOR jaltman@secure-endpoints.com
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 follows ---
windows-dir-bplus-shortnames-20070912 openafs/src/WINNT/afsd/cm_btree.c 1.3 1.4
windows-dir-bplus-shortnames-20070912 openafs/src/WINNT/afsd/cm_btree.h 1.2 1.3