https://git.reactos.org/?p=reactos.git;a=commitdiff;h=2fbba22789423d5959d32f201153effe3f14bb55

commit 2fbba22789423d5959d32f201153effe3f14bb55
Author:     Pierre Schweitzer <[email protected]>
AuthorDate: Sun Mar 18 13:11:05 2018 +0100
Commit:     Pierre Schweitzer <[email protected]>
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;

Reply via email to