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

Thu, 02 Aug 2007 16:52:54 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_buf.c cm_buf.h cm_dir.c cm_dir.h cm_scache.c cm_vnodeops.c 
Log Message:
DELTA windows-local-directory-updates-20070802

The windows cache manager has suffered from poor performance as a result
of Create, Rename, and Delete operations because they invalidate the 
contents of the directory pages in the cache thereby forcing them to be
reloaded from the file server.   As the directory size increases, the clock
time necessary to perform the reload increases.  

This delta adds support for parsing and updating the AFS3 directory buffers
to cm_dir.c.  It then uses that functionality to perform local updates to
the directory buffers whenever the following conditions are met:

 1. the data version on the directory as a result of the change 
    was incremented by one.

 2. all of the directory buffers required for the update are in 
    the cache.

If these conditions are not met, the directory is reloaded from the file 

--- DELTA config follows ---
windows-local-directory-updates-20070802 openafs/src/WINNT/afsd/cm_buf.c 1.48 1.49
windows-local-directory-updates-20070802 openafs/src/WINNT/afsd/cm_buf.h 1.17 1.18
windows-local-directory-updates-20070802 openafs/src/WINNT/afsd/cm_dir.c 1.6 1.7
windows-local-directory-updates-20070802 openafs/src/WINNT/afsd/cm_dir.h 1.5 1.6
windows-local-directory-updates-20070802 openafs/src/WINNT/afsd/cm_scache.c 1.75 1.76
windows-local-directory-updates-20070802 openafs/src/WINNT/afsd/cm_vnodeops.c 1.102 1.103