https://git.reactos.org/?p=reactos.git;a=commitdiff;h=2fbba22789423d5959d32f...
commit 2fbba22789423d5959d32f201153effe3f14bb55 Author: Pierre Schweitzer pierre@reactos.org AuthorDate: Sun Mar 18 13:11:05 2018 +0100 Commit: Pierre Schweitzer pierre@reactos.org CommitDate: Sun Mar 18 13:21:54 2018 +0100
[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 4651abe670..24be8cb7aa 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;