In commit
c753d398f2005c886932f20b49af15efc489a829 the
AFSDirectoryCB.DirOpenReferenceCount was split and the
NameArrayReferenceCount field was added. However, it failed to modify all
of the DirOpenReferenceCount checks prior to calling AFSDeleteDirEntry()
to include a check on the NameArrayReferenceCount. This patchset corrects
that oversight.
Change-Id: I8db1a68e5240088bcfeb226bd1eafac0c83a0b69
Reviewed-on: http://gerrit.openafs.org/9254
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
ASSERT( lCount >= 0);
- if( lCount == 0)
+ if( lCount == 0 &&
+ pDirCB->NameArrayReferenceCount <= 0)
{
AFSDbgLogMsg( AFS_SUBSYSTEM_CLEANUP_PROCESSING,
// Need to tear down this entry and rebuild it below
//
- if( pDirNode->DirOpenReferenceCount <= 0)
+ if( pDirNode->DirOpenReferenceCount <= 0 &&
+ pDirNode->NameArrayReferenceCount <= 0)
{
AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
// Need to tear down this entry and rebuild it below
//
- if( pDirNode->DirOpenReferenceCount <= 0)
+ if( pDirNode->DirOpenReferenceCount <= 0 &&
+ pDirNode->NameArrayReferenceCount <= 0)
{
AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
pResultCB->DirEnum.FileId.Vnode,
pResultCB->DirEnum.FileId.Unique);
- if( pDirNode->DirOpenReferenceCount <= 0)
+ if( pDirNode->DirOpenReferenceCount <= 0 &&
+ pDirNode->NameArrayReferenceCount <= 0)
{
AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
pResultCB->DirEnum.FileId.Vnode,
pResultCB->DirEnum.FileId.Unique);
- if( pDirNode->DirOpenReferenceCount <= 0)
+ if( pDirNode->DirOpenReferenceCount <= 0 &&
+ pDirNode->NameArrayReferenceCount <= 0)
{
AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
ASSERT( lCount >= 0);
- if( lCount == 0)
+ if( lCount == 0 &&
+ pTargetDirEntry->NameArrayReferenceCount <= 0)
{
AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
//
if( BooleanFlagOn( pCurrentDirEntry->Flags, AFS_DIR_ENTRY_DELETED) &&
- pCurrentDirEntry->DirOpenReferenceCount <= 0)
+ pCurrentDirEntry->DirOpenReferenceCount <= 0 &&
+ pCurrentDirEntry->NameArrayReferenceCount <= 0)
{
AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
pCurrentDirEntry,
pCurrentDirEntry->DirOpenReferenceCount);
- if( pCurrentDirEntry->DirOpenReferenceCount <= 0)
+ if( pCurrentDirEntry->DirOpenReferenceCount <= 0 &&
+ pCurrentDirEntry->NameArrayReferenceCount <= 0)
{
AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
pNextDirEntry = (AFSDirectoryCB *)pCurrentDirEntry->ListEntry.fLink;
- if( pCurrentDirEntry->DirOpenReferenceCount <= 0)
+ if( pCurrentDirEntry->DirOpenReferenceCount <= 0 &&
+ pCurrentDirEntry->NameArrayReferenceCount <= 0)
{
AFSDbgLogMsg( AFS_SUBSYSTEM_CLEANUP_PROCESSING,
ASSERT( lCount >= 0);
- if( lCount == 0)
+ if( lCount == 0 &&
+ pDirEntry->NameArrayReferenceCount <= 0)
{
AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING|AFS_SUBSYSTEM_CLEANUP_PROCESSING,
// Need to tear down this entry and rebuild it below
//
- if( pExistingDirNode->DirOpenReferenceCount <= 0)
+ if( pExistingDirNode->DirOpenReferenceCount <= 0 &&
+ pExistingDirNode->NameArrayReferenceCount <= 0)
{
AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,