From 2fbba22789423d5959d32f201153effe3f14bb55 Mon Sep 17 00:00:00 2001 From: Pierre Schweitzer Date: Sun, 18 Mar 2018 13:11:05 +0100 Subject: [PATCH] [NTOSKRNL] In CcFlushCache(), release the VACB using CcRosReleaseVacb() Instead of reimplementing it partially and wrongly. CORE-14481 CORE-14480 CORE-14482 --- ntoskrnl/cc/view.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/ntoskrnl/cc/view.c b/ntoskrnl/cc/view.c index 4651abe6707..24be8cb7aaf 100644 --- a/ntoskrnl/cc/view.c +++ b/ntoskrnl/cc/view.c @@ -963,7 +963,6 @@ CcFlushCache ( LONGLONG RemainingLength; PROS_VACB current; NTSTATUS Status; - KIRQL oldIrql; CCTRACE(CC_API_DEBUG, "SectionObjectPointers=%p FileOffset=%p Length=%lu\n", SectionObjectPointers, FileOffset, Length); @@ -1006,13 +1005,7 @@ CcFlushCache ( } } - CcRosReleaseVacbLock(current); - - KeAcquireGuardedMutex(&ViewLock); - KeAcquireSpinLock(&SharedCacheMap->CacheMapLock, &oldIrql); - CcRosVacbDecRefCount(current); - KeReleaseSpinLock(&SharedCacheMap->CacheMapLock, oldIrql); - KeReleaseGuardedMutex(&ViewLock); + CcRosReleaseVacb(SharedCacheMap, current, current->Valid, current->Dirty, FALSE); } Offset.QuadPart += VACB_MAPPING_GRANULARITY;