From: Jeffrey Altman Date: Fri, 7 Dec 2012 04:20:57 +0000 (-0500) Subject: Windows: Periodic Worker CleanupFcb to Flush Dirty Extents X-Git-Tag: upstream/1.8.0_pre1^2~1728 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=dd0f4bcd06c2283bc4ebbd3b44ed0f0e47b73d03;p=packages%2Fo%2Fopenafs.git Windows: Periodic Worker CleanupFcb to Flush Dirty Extents The AFSPrimaryVolumeWorkerThread must not check the ObjectInformationCB reference count when determining whether or not to call AFSCleanupFcb(). One of the tasks of AFSCleanupFcb() is to flush dirty extents to the service. Change-Id: Id1821ec16393952d27520e73e290e520966b1d75 Reviewed-on: http://gerrit.openafs.org/8716 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman --- diff --git a/src/WINNT/afsrdr/kernel/lib/AFSWorker.cpp b/src/WINNT/afsrdr/kernel/lib/AFSWorker.cpp index 559fc6c7c..bd90b46b9 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSWorker.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSWorker.cpp @@ -1561,12 +1561,11 @@ AFSPrimaryVolumeWorkerThread( IN PVOID Context) else if( pCurrentObject->FileType == AFS_FILE_TYPE_FILE) { - AFSReleaseResource( pVolumeCB->ObjectInfoTree.TreeLock); - lCount = AFSObjectInfoIncrement( pCurrentObject); - if( lCount == 0 && - pCurrentObject->Fcb != NULL) + AFSReleaseResource( pVolumeCB->ObjectInfoTree.TreeLock); + + if( pCurrentObject->Fcb != NULL) { //