OpenAFS CVS Commit: openafs/src/WINNT/afsrdr/kernel by jaltman

cvs@GRAND.CENTRAL.ORG cvs@GRAND.CENTRAL.ORG
Mon, 08 Dec 2008 12:03:13 EST


Update of /cvs/openafs/src/WINNT/afsrdr/kernel
In directory GRAND.CENTRAL.ORG:/home/jaltman/openafs/cvs-kdfs/src/WINNT/afsrdr/kernel

Modified Files:
      Tag: openafs-windows-kdfs-ifs-branch
	AFSBTreeSupport.cpp AFSCommSupport.cpp AFSCreate.cpp 
	AFSExtentsSupport.cpp AFSFcbSupport.cpp AFSFileInfo.cpp 
	AFSGeneric.cpp AFSNameSupport.cpp AFSVolumeInfo.cpp 
	AFSWrite.cpp 
Log Message:
DELTA KDFS-windows-afs-rdr-kernel-20081208
AUTHOR pscott@kerneldrivers.com
LICENSE BSD

(jaltman@secure-endpoints.com contributed
to these changes.)

Add QueueCount to the AFSCommRequestBlock.
This number is an estimate of the number of
outstanding requests the file system has 
to send to the afs cache manager.  This
value can be used in the future to dynamically
adjust the worker thread pool size based upon
the observed need.  

Add debugging to AFSEnumerateDirectory.

Add assertions to ensure that VolumeInformation
is only accessed for Fcbs that are root volume
objects (vnode = 1, unique = 1).

The AFS Global Root Fcb is a root volume.  Set
the vnode,unique pair to indicate that.

If an AFSEnumerateDirectory call is interrupted,
reset the directory contents.

Do not initialize the DirtyEntentsList without
holding the lock resource.

When waiting for an extent, periodically timeout
the wait and re-issue the request to the cache
manager.  There is a potential race in low extent
count scenarios where an extent can be assigned
to the file system and released back to the AFS
cache manager before the requesting thread has
a chance to use the required extent.

Use IsListEmpty() instead of relying on the 
return value to RemoveHeadList() to indicate 
that the list is empty.

Reorder the acquisition of the NPDirNode and Fcb
locks in AFSValidateEntry to avoid a deadlock.



--- DELTA config for openafs-windows-kdfs-ifs-branch follows ---
KDFS-windows-afs-rdr-kernel-20081208 openafs/src/WINNT/afsrdr/kernel/AFSBTreeSupport.cpp 1.1.2.6 1.1.2.7
KDFS-windows-afs-rdr-kernel-20081208 openafs/src/WINNT/afsrdr/kernel/AFSCommSupport.cpp 1.1.2.15 1.1.2.16
KDFS-windows-afs-rdr-kernel-20081208 openafs/src/WINNT/afsrdr/kernel/AFSCreate.cpp 1.1.2.13 1.1.2.14
KDFS-windows-afs-rdr-kernel-20081208 openafs/src/WINNT/afsrdr/kernel/AFSExtentsSupport.cpp 1.1.2.14 1.1.2.15
KDFS-windows-afs-rdr-kernel-20081208 openafs/src/WINNT/afsrdr/kernel/AFSFcbSupport.cpp 1.1.2.16 1.1.2.17
KDFS-windows-afs-rdr-kernel-20081208 openafs/src/WINNT/afsrdr/kernel/AFSFileInfo.cpp 1.1.2.10 1.1.2.11
KDFS-windows-afs-rdr-kernel-20081208 openafs/src/WINNT/afsrdr/kernel/AFSGeneric.cpp 1.1.2.16 1.1.2.17
KDFS-windows-afs-rdr-kernel-20081208 openafs/src/WINNT/afsrdr/kernel/AFSNameSupport.cpp 1.1.2.15 1.1.2.16
KDFS-windows-afs-rdr-kernel-20081208 openafs/src/WINNT/afsrdr/kernel/AFSVolumeInfo.cpp 1.1.2.7 1.1.2.8
KDFS-windows-afs-rdr-kernel-20081208 openafs/src/WINNT/afsrdr/kernel/AFSWrite.cpp 1.1.2.14 1.1.2.15