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

cvs@GRAND.CENTRAL.ORG cvs@GRAND.CENTRAL.ORG
Mon, 02 Oct 2006 23:22:38 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_access.c cm_buf.c cm_buf.h cm_callback.c cm_daemon.c 
	cm_daemon.h cm_dcache.c cm_dcache.h cm_ioctl.c cm_scache.c 
	cm_scache.h cm_vnodeops.c rawops.c smb.c smb.h smb3.c 
Log Message:
DELTA windows-multi-fix-20061002
AUTHOR jaltman@secure-endpoints.com

Fix the following problems:

it is possible for a file to be created, buffers to become dirty from 
writes, the file to be deleted, the stat cache entry to be reused, and 
the dirty buffers to remain dirty until the end of time.

stat cache entry starvation can occur because of large numbers of dirty 
buffers which take too long to be written to the file server.  The 
thread that writes dirty buffers in background writes/checks a small 
number of buffers, SQRT(buf-count), and then sleeps for 5 seconds.  
Writing all of the dirty buffers via this algorithm produces untimely
results.  

threads can end up waiting for a callback on the same stat cache entry 
even though there are no threads actually attempting to perform the 
FetchStatus.

And:

Fix prototypes 

Optimize cm_GetNewSCache to reuse scache entries for deleted files
and entries not in the hashtable before allocating a new one.  This
keeps the entries in the hashtable to a minimum and thereby improving
performance for all other operations which must lookup a scache entry
by FID.

Add support for Sequential and Random Access flags



--- DELTA config follows ---
windows-multi-fix-20061002 openafs/src/WINNT/afsd/cm_access.c 1.11 1.12
windows-multi-fix-20061002 openafs/src/WINNT/afsd/cm_buf.c 1.34 1.35
windows-multi-fix-20061002 openafs/src/WINNT/afsd/cm_buf.h 1.14 1.15
windows-multi-fix-20061002 openafs/src/WINNT/afsd/cm_callback.c 1.48 1.49
windows-multi-fix-20061002 openafs/src/WINNT/afsd/cm_daemon.c 1.21 1.22
windows-multi-fix-20061002 openafs/src/WINNT/afsd/cm_daemon.h 1.4 1.5
windows-multi-fix-20061002 openafs/src/WINNT/afsd/cm_dcache.c 1.33 1.34
windows-multi-fix-20061002 openafs/src/WINNT/afsd/cm_dcache.h 1.4 1.5
windows-multi-fix-20061002 openafs/src/WINNT/afsd/cm_ioctl.c 1.78 1.79
windows-multi-fix-20061002 openafs/src/WINNT/afsd/cm_scache.c 1.49 1.50
windows-multi-fix-20061002 openafs/src/WINNT/afsd/cm_scache.h 1.25 1.26
windows-multi-fix-20061002 openafs/src/WINNT/afsd/cm_vnodeops.c 1.81 1.82
windows-multi-fix-20061002 openafs/src/WINNT/afsd/rawops.c 1.3 1.4
windows-multi-fix-20061002 openafs/src/WINNT/afsd/smb.c 1.136 1.137
windows-multi-fix-20061002 openafs/src/WINNT/afsd/smb.h 1.50 1.51
windows-multi-fix-20061002 openafs/src/WINNT/afsd/smb3.c 1.112 1.113