Windows: AFSValidateEntry CcPurge on DV change

The variable bPurgeExtents was not being set when a DV change
was detected in AFSValidateEntry().  This resulted in the purge
being skipped and old data being left in the cache.

Change-Id: I6f5a35e5c7a51d28267e0ff25318782a766771ac
Reviewed-on: http://gerrit.openafs.org/7280
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
This commit is contained in:
Jeffrey Altman 2012-04-24 15:41:39 -04:00 committed by Jeffrey Altman
parent d4c9cbc75e
commit 229131ab12

View File

@ -3967,6 +3967,24 @@ AFSValidateEntry( IN AFSDirectoryCB *DirEntry,
pObjectInfo->FileId.Vnode,
pObjectInfo->FileId.Unique);
if ( pObjectInfo->DataVersion.QuadPart != pDirEnumEntry->DataVersion.QuadPart)
{
AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSValidateEntry DV Change %wZ FID %08lX-%08lX-%08lX-%08lX (%08lX != %08lX)\n",
&DirEntry->NameInformation.FileName,
pObjectInfo->FileId.Cell,
pObjectInfo->FileId.Volume,
pObjectInfo->FileId.Vnode,
pObjectInfo->FileId.Unique,
pObjectInfo->DataVersion.LowPart,
pDirEnumEntry->DataVersion.LowPart
);
bPurgeExtents = TRUE;
}
if ( BooleanFlagOn( pObjectInfo->Flags, AFS_OBJECT_FLAGS_VERIFY_DATA))
{
bPurgeExtents = TRUE;