From 168d730a6f227c9b9dce228314eb75aa76b8cddb Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Fri, 17 Feb 2012 10:37:34 -0500 Subject: [PATCH] Windows: remove unnecessary DirectoryEnumEvent The DirectoryEnumEvent is not required to implement: AFSSetEnumerationEvent AFSClearEnumerationEvent AFSIsEnumerationInProgress The DirectoryEnumCount is modified by interlocked operations and can be used as a marker for when an enumeration is in progress. Change-Id: I414ce2bc753b0fd60a3fac51c2cf3d264a32ab05 Reviewed-on: http://gerrit.openafs.org/6725 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman --- .../afsrdr/common/AFSRedirCommonStructs.h | 2 - src/WINNT/afsrdr/kernel/lib/AFSFcbSupport.cpp | 16 ------ src/WINNT/afsrdr/kernel/lib/AFSGeneric.cpp | 53 +------------------ 3 files changed, 1 insertion(+), 70 deletions(-) diff --git a/src/WINNT/afsrdr/common/AFSRedirCommonStructs.h b/src/WINNT/afsrdr/common/AFSRedirCommonStructs.h index f813a5811..2dcf80a91 100644 --- a/src/WINNT/afsrdr/common/AFSRedirCommonStructs.h +++ b/src/WINNT/afsrdr/common/AFSRedirCommonStructs.h @@ -217,8 +217,6 @@ typedef struct _AFS_NONPAGED_FCB struct { - KEVENT DirectoryEnumEvent; - LONG DirectoryEnumCount; } Directory; diff --git a/src/WINNT/afsrdr/kernel/lib/AFSFcbSupport.cpp b/src/WINNT/afsrdr/kernel/lib/AFSFcbSupport.cpp index 9f697f795..5e148e4de 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSFcbSupport.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSFcbSupport.cpp @@ -179,14 +179,6 @@ AFSInitFcb( IN AFSDirectoryCB *DirEntry) // pFcb->Header.NodeTypeCode = AFS_DIRECTORY_FCB; - - // - // Initialize enumeration information - // - - KeInitializeEvent( &pFcb->NPFcb->Specific.Directory.DirectoryEnumEvent, - NotificationEvent, - FALSE); } else if( pObjectInfo->FileType == AFS_FILE_TYPE_FILE) { @@ -957,14 +949,6 @@ AFSInitRootFcb( IN ULONGLONG ProcessID, pFcb->NPFcb = pNPFcb; - // - // Initialize enumeration information - // - - KeInitializeEvent( &pFcb->NPFcb->Specific.Directory.DirectoryEnumEvent, - NotificationEvent, - FALSE); - // // Save the root Fcb in the VolumeCB // diff --git a/src/WINNT/afsrdr/kernel/lib/AFSGeneric.cpp b/src/WINNT/afsrdr/kernel/lib/AFSGeneric.cpp index ec9a0253b..dfd8968e1 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSGeneric.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSGeneric.cpp @@ -5398,25 +5398,10 @@ AFSSetEnumerationEvent( IN AFSFcb *Fcb) { case AFS_DIRECTORY_FCB: - { - - KeSetEvent( &Fcb->NPFcb->Specific.Directory.DirectoryEnumEvent, - 0, - FALSE); - - lCount = InterlockedIncrement( &Fcb->NPFcb->Specific.Directory.DirectoryEnumCount); - - break; - } - case AFS_ROOT_FCB: case AFS_ROOT_ALL: { - KeSetEvent( &Fcb->NPFcb->Specific.Directory.DirectoryEnumEvent, - 0, - FALSE); - lCount = InterlockedIncrement( &Fcb->NPFcb->Specific.Directory.DirectoryEnumCount); break; @@ -5440,21 +5425,6 @@ AFSClearEnumerationEvent( IN AFSFcb *Fcb) { case AFS_DIRECTORY_FCB: - { - - ASSERT( Fcb->NPFcb->Specific.Directory.DirectoryEnumCount > 0); - - lCount = InterlockedDecrement( &Fcb->NPFcb->Specific.Directory.DirectoryEnumCount); - - if( lCount == 0) - { - - KeClearEvent( &Fcb->NPFcb->Specific.Directory.DirectoryEnumEvent); - } - - break; - } - case AFS_ROOT_FCB: case AFS_ROOT_ALL: { @@ -5463,12 +5433,6 @@ AFSClearEnumerationEvent( IN AFSFcb *Fcb) lCount = InterlockedDecrement( &Fcb->NPFcb->Specific.Directory.DirectoryEnumCount); - if( lCount == 0) - { - - KeClearEvent( &Fcb->NPFcb->Specific.Directory.DirectoryEnumEvent); - } - break; } } @@ -5491,30 +5455,15 @@ AFSIsEnumerationInProcess( IN AFSObjectInfoCB *ObjectInfo) try_return( bIsInProcess); } - // - // Depending on the type of node, set the event - // - switch( ObjectInfo->Fcb->Header.NodeTypeCode) { case AFS_DIRECTORY_FCB: - { - - if( KeReadStateEvent( &ObjectInfo->Fcb->NPFcb->Specific.Directory.DirectoryEnumEvent)) - { - - bIsInProcess = TRUE; - } - - break; - } - case AFS_ROOT_FCB: case AFS_ROOT_ALL: { - if( KeReadStateEvent( &ObjectInfo->Fcb->NPFcb->Specific.Directory.DirectoryEnumEvent)) + if( ObjectInfo->Fcb->NPFcb->Specific.Directory.DirectoryEnumCount > 0) { bIsInProcess = TRUE; -- 2.39.5