Each time the ObjectInformationCB object is looked up
from the ObjectInfoTree the LastAccessCount field should be updated
except in cases of invalidation, garbage collection, and extent
processing. This is particularly important when an ObjectInfoCB
is attached to DirectoryCB in AFSInitDirEntry and when constructing
directory snapshots or validating directory content.
Change-Id: Ife412b723a1bdc922ffdfeca71061fcfd1ce721a
Reviewed-on: http://gerrit.openafs.org/9784
Reviewed-by: Rod Widdowson <rdw@steadingsoftware.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
SetFlag( pDirNode->Flags, AFS_DIR_ENTRY_VALID);
+ KeQueryTickCount( &ObjectInfoCB->LastAccessCount);
+
if( pCurrentDirEntry->ShortNameLength > 0 &&
pDirNode->NameInformation.ShortNameLength > 0)
{
pSnapshotEntry->NameHash = (ULONG)pDirEntry->CaseSensitiveTreeEntry.HashIndex;
pSnapshotEntry++;
+
+ if ( pDirEntry->ObjectInformation != NULL)
+ {
+
+ KeQueryTickCount( &pDirEntry->ObjectInformation->LastAccessCount);
+ }
}
else
{
"AFSProcessUserFsRequest Increment count on object %p Cnt %d\n",
pParentObjectInfo,
lCount));
+
+ KeQueryTickCount( &pParentObjectInfo->LastAccessCount);
}
AFSReleaseResource( pFcb->ObjectInformation->VolumeCB->ObjectInfoTree.TreeLock);
pObjectInfoCB,
lCount));
+ KeQueryTickCount( &pObjectInfoCB->LastAccessCount);
+
AFSReleaseResource( ParentObjectInfo->VolumeCB->ObjectInfoTree.TreeLock);
ntStatus = STATUS_SUCCESS;
"AFSGetObjectStatus Increment2 count on object %p Cnt %d\n",
pObjectInfo,
lCount));
+
+ KeQueryTickCount( &pObjectInfo->LastAccessCount);
}
AFSReleaseResource( pVolumeCB->ObjectInfoTree.TreeLock);