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>
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);