From 16feb54d0e194f1b429ab938667babd132a7cb52 Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Sat, 6 Apr 2013 16:31:07 -0400 Subject: [PATCH] Windows: AFS_INVALIDATE_DATA_VERSION only by service Let the service make all decisions regarding when a data version invalidation should be initiated. If during directory enumeration or entry validation a data version change is noticed, that is an indication that the meta data should be updated. Change-Id: I8872fb5500b08ef2c6b64ab5fd13beeee4267aa2 Reviewed-on: http://gerrit.openafs.org/9743 Tested-by: BuildBot Reviewed-by: Peter Scott Reviewed-by: Jeffrey Altman --- .../afsrdr/kernel/lib/AFSCommSupport.cpp | 58 ------------------- 1 file changed, 58 deletions(-) diff --git a/src/WINNT/afsrdr/kernel/lib/AFSCommSupport.cpp b/src/WINNT/afsrdr/kernel/lib/AFSCommSupport.cpp index f9edbbfca..d86070159 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSCommSupport.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSCommSupport.cpp @@ -308,28 +308,6 @@ AFSEnumerateDirectory( IN GUID *AuthGroup, // if( pDirNode->ObjectInformation->DataVersion.QuadPart != pCurrentDirEntry->DataVersion.QuadPart) - { - - LONG lCount; - AFSObjectInfoCB *pObjectInfo = pDirNode->ObjectInformation; - - // - // The ObjectReferenceCount will be freed by AFSPerformObjectInvalidate - // - - lCount = AFSObjectInfoIncrement( pObjectInfo, - AFS_OBJECT_REFERENCE_INVALIDATION); - - AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING, - AFS_TRACE_LEVEL_VERBOSE, - "AFSEnumerateDirectory calling AFSPerformObjectInvalidate Increment count on object %p Cnt %d\n", - pObjectInfo, - lCount)); - - AFSPerformObjectInvalidate( pObjectInfo, - AFS_INVALIDATE_DATA_VERSION); - } - else { AFSUpdateMetaData( pDirNode, @@ -1101,42 +1079,6 @@ AFSVerifyDirectoryContent( IN AFSObjectInfoCB *ObjectInfoCB, // if( pObjectInfo->DataVersion.QuadPart != pCurrentDirEntry->DataVersion.QuadPart) - { - - // - // The ObjectReferenceCount will be freed by AFSPerformObjectInvalidate - // if successfully queued. Cannot call AFSPerformObjectInvalidate directly - // because ObjectInfoCB->Specific.Directory.DirectoryNodeHdr.TreeLock is - // held during the sequence AFSVerifyEntry->AFSValidateDirectoryCache-> - // AFSVerifyDirectoryContent and AFSPerformObjectInvalidate requires the - // Fcb->NPFcb->Resource which must be held prior to the TreeLock in the - // lock hierarchy. - // - - lCount = AFSObjectInfoIncrement( pObjectInfo, - AFS_OBJECT_REFERENCE_INVALIDATION); - - AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING, - AFS_TRACE_LEVEL_VERBOSE, - "AFSVerifyDirectoryContent calling AFSQueueInvalidateObject Increment count on object %p Cnt %d\n", - pObjectInfo, - lCount)); - - if ( !NT_SUCCESS( AFSQueueInvalidateObject( pObjectInfo, - AFS_INVALIDATE_DATA_VERSION))) - { - - lCount = AFSObjectInfoDecrement( pObjectInfo, - AFS_OBJECT_REFERENCE_INVALIDATION); - - AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING, - AFS_TRACE_LEVEL_VERBOSE, - "AFSVerifyDirectoryContent AFSQueueInvalidateObject failed Decrement count on object %p Cnt %d\n", - pObjectInfo, - lCount)); - } - } - else { AFSUpdateMetaData( pDirNode, -- 2.39.5