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

cvs@GRAND.CENTRAL.ORG cvs@GRAND.CENTRAL.ORG
Wed, 31 Oct 2007 11:33:28 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 
Log Message:
DELTA windows-btree-20071031
AUTHOR jaltman@secure-endpoints.com

Add additional validation and error handling code after each call to 
getSlot().  If an invalid slot is returned, return NONODE.  If the
invalid slot is returned when extracting a data node, invalidate the
tree.

Modify compareKeys() to always perform a case-insensitive comparison
and only perform a case sensistive comparison if the case-insensitive
one matches.  This ensures the ordering is consistently reported.

Add lock assertions to ensure that all calls are being performed with
the correct locks being held.  There have been some crash reports that
provide stack data that does not appear to be possible unless there is
a race.  However, there are no obvious locations where the race is 
taking place and the test suite indicates that all of the correct locks
are being held. We shall see what happens in the field.

For consistency replace all calls to findKey in which the range is 
(1,numentries) with calls to getSlot().

Optimize the depth search loop by testing the slot value in the for
statement instead of forcing the loop to be broken later.



--- DELTA config follows ---
windows-btree-20071031 openafs/src/WINNT/afsd/cm_btree.c 1.7 1.8