From d810870ec1a2ad1cb438d776236db3340081fe74 Mon Sep 17 00:00:00 2001 From: Peter Scott Date: Thu, 10 Nov 2011 13:34:53 -0700 Subject: [PATCH] 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 --- src/WINNT/afsrdr/kernel/lib/AFSDirControl.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) 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", -- 2.39.5