Windows: Correctly increment PIOCtl DE
authorPeter Scott <pscott@kerneldrivers.com>
Thu, 10 Nov 2011 20:34:53 +0000 (13:34 -0700)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Thu, 10 Nov 2011 20:57:15 +0000 (12:57 -0800)
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 <jaltman@secure-endpoints.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>

src/WINNT/afsrdr/kernel/lib/AFSDirControl.cpp

index 5471bee..e05d4dc 100644 (file)
@@ -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",