mirror of
https://github.com/reactos/reactos.git
synced 2026-06-02 01:11:03 +08:00
[NTOSKRNL] Noisily dereference mapped VACB on cache release.
It seems that on process killing, some VACB may be deleted while still mapped. With current reference counting, they will actually not be deleted, but leaked, and an ASSERT will be triggered. CORE-14578
This commit is contained in:
@@ -1106,6 +1106,12 @@ CcRosDeleteFileCache (
|
||||
KeReleaseSpinLock(&SharedCacheMap->CacheMapLock, oldIrql);
|
||||
DPRINT1("Freeing dirty VACB\n");
|
||||
}
|
||||
if (current->MappedCount != 0)
|
||||
{
|
||||
current->MappedCount = 0;
|
||||
NT_VERIFY(CcRosVacbDecRefCount(current) > 0);
|
||||
DPRINT1("Freeing mapped VACB\n");
|
||||
}
|
||||
InsertHeadList(&FreeList, ¤t->CacheMapVacbListEntry);
|
||||
|
||||
KeAcquireSpinLock(&SharedCacheMap->CacheMapLock, &oldIrql);
|
||||
|
||||
Reference in New Issue
Block a user