From cc54e51495f99a90df3bb46eacc6f6aead518ca5 Mon Sep 17 00:00:00 2001 From: Pierre Schweitzer Date: Mon, 30 Apr 2018 10:36:19 +0200 Subject: [PATCH] [NTOSKRNL] Unmark dirty first, and then write. This will avoid trying to flush twice a dirty VACB under high IOs pressure. CORE-14584 --- ntoskrnl/cc/view.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ntoskrnl/cc/view.c b/ntoskrnl/cc/view.c index e1d064312ff..5bd1f41411a 100644 --- a/ntoskrnl/cc/view.c +++ b/ntoskrnl/cc/view.c @@ -168,10 +168,12 @@ CcRosFlushVacb ( { NTSTATUS Status; + CcRosUnmarkDirtyVacb(Vacb, TRUE); + Status = CcWriteVirtualAddress(Vacb); - if (NT_SUCCESS(Status)) + if (!NT_SUCCESS(Status)) { - CcRosUnmarkDirtyVacb(Vacb, TRUE); + CcRosMarkDirtyVacb(Vacb); } return Status;