From: Peter Scott Date: Thu, 10 Nov 2011 20:34:53 +0000 (-0700) Subject: Windows: Correctly increment PIOCtl DE X-Git-Tag: upstream/1.8.0_pre1^2~3065 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=d810870ec1a2ad1cb438d776236db3340081fe74;p=packages%2Fo%2Fopenafs.git Windows: Correctly increment PIOCtl DE When performing a directory enumeraiton, correctly increment ref count on the PIOCtl DE structures Change-Id: I44de6ab2d804378723e31887089aca4890d15fa6 Reviewed-on: http://gerrit.openafs.org/5834 Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman --- diff --git a/src/WINNT/afsrdr/kernel/lib/AFSDirControl.cpp b/src/WINNT/afsrdr/kernel/lib/AFSDirControl.cpp index 5471bee56..e05d4dc6b 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSDirControl.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSDirControl.cpp @@ -1123,6 +1123,11 @@ AFSLocateNextDirEntry( IN AFSObjectInfoCB *ObjectInfo, pDirEntry = ObjectInfo->Specific.Directory.PIOCtlDirectoryCB; + if( pDirEntry != NULL) + { + InterlockedIncrement( &pDirEntry->OpenReferenceCount); + } + AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING, AFS_TRACE_LEVEL_VERBOSE, "AFSLocateNextDirEntry Returning PIOctl entry %wZ in parent FID %08lX-%08lX-%08lX-%08lX\n", @@ -1149,6 +1154,11 @@ AFSLocateNextDirEntry( IN AFSObjectInfoCB *ObjectInfo, pDirEntry = AFSGlobalDotDirEntry; + if( pDirEntry != NULL) + { + InterlockedIncrement( &pDirEntry->OpenReferenceCount); + } + AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING, AFS_TRACE_LEVEL_VERBOSE, "AFSLocateNextDirEntry Returning1 snapshot entry %wZ in parent FID %08lX-%08lX-%08lX-%08lX\n", @@ -1167,6 +1177,11 @@ AFSLocateNextDirEntry( IN AFSObjectInfoCB *ObjectInfo, pDirEntry = AFSGlobalDotDotDirEntry; + if( pDirEntry != NULL) + { + InterlockedIncrement( &pDirEntry->OpenReferenceCount); + } + AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING, AFS_TRACE_LEVEL_VERBOSE, "AFSLocateNextDirEntry Returning2 snapshot entry %wZ in parent FID %08lX-%08lX-%08lX-%08lX\n",