Windows: Remove extent from all skip lists

Before freeing the memory for an Extent object, the extent must
be removed from all of the extent skip lists.  Otherwise, the
lists will be corrupted.

Change-Id: I891321477b9f0e194544e9e73dad53473f0865b4
Reviewed-on: http://gerrit.openafs.org/7518
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-05-26 18:06:07 -04:00 committed by Jeffrey Altman
parent c5f32b3159
commit ed0eb70f36

View File

@ -253,7 +253,13 @@ AFSTearDownFcbExtents( IN AFSFcb *Fcb,
InterlockedExchangeAdd( &Fcb->Specific.File.ExtentLength, -((LONG)(pEntry->Size/1024)));
RemoveEntryList( le);
for (ULONG i = 0; i < AFS_NUM_EXTENT_LISTS; i ++)
{
if (NULL != pEntry->Lists[i].Flink && !IsListEmpty(&pEntry->Lists[i]))
{
RemoveEntryList( &pEntry->Lists[i] );
}
}
AFSExFreePool( pEntry);