https://git.reactos.org/?p=reactos.git;a=commitdiff;h=54c049bd6ef0a906aff0f…
commit 54c049bd6ef0a906aff0f434f724765f009485d8
Author:     Pierre Schweitzer <pierre(a)reactos.org>
AuthorDate: Mon Apr 30 22:19:17 2018 +0200
Commit:     Pierre Schweitzer <pierre(a)reactos.org>
CommitDate: Mon Apr 30 22:24:30 2018 +0200
    [NTOKSNRL] Always flush dirty VACB.
    Recent changes seem to show that it's not
    required to be exclusive on VACB to be able
    to flush it.
    This commit goes with f2c44aa and fixes the
    last issues going with copying huge files.
    There are no longer BSODs (be it in Mm or Cc).
    I could, with 750MB RAM extract a 2GB file from
    a 53MB archive and copy a 2,5GB file from a VBox
    share to the disk. Note that writes are often
    deferred, so if copy works, it's not that fast for now.
    Note that it also brings some beloved behavior from
    Windows: copy times are totally unreliable now when
    writes are deferred. Little remaining times when
    actively copying, high remaining times when deferred
    writes in action. And goes between both... Sorry! ;-)
    
https://xkcd.com/612/
    CORE-9696
    CORE-11175
---
 ntoskrnl/cc/view.c | 13 -------------
 1 file changed, 13 deletions(-)
diff --git a/ntoskrnl/cc/view.c b/ntoskrnl/cc/view.c
index d3c32f9046..9a7f716854 100644
--- a/ntoskrnl/cc/view.c
+++ b/ntoskrnl/cc/view.c
@@ -207,8 +207,6 @@ CcRosFlushDirtyPages (
     while ((current_entry != &DirtyVacbListHead) && (Target > 0))
     {
-        ULONG Refs;
-
         current = CONTAINING_RECORD(current_entry,
                                     ROS_VACB,
                                     DirtyVacbListEntry);
@@ -234,17 +232,6 @@ CcRosFlushDirtyPages (
         ASSERT(current->Dirty);
-        /* One reference is added above */
-        Refs = CcRosVacbGetRefCount(current);
-        if ((Refs > 3 && current->PinCount == 0) ||
-            (Refs > 4 && current->PinCount > 1))
-        {
-            current->SharedCacheMap->Callbacks->ReleaseFromLazyWrite(
-                current->SharedCacheMap->LazyWriteContext);
-            CcRosVacbDecRefCount(current);
-            continue;
-        }
-
         KeReleaseGuardedMutex(&ViewLock);
         Status = CcRosFlushVacb(current);