diff --git a/ntoskrnl/cc/view.c b/ntoskrnl/cc/view.c index 81a1dac801c..d64496595f4 100644 --- a/ntoskrnl/cc/view.c +++ b/ntoskrnl/cc/view.c @@ -222,18 +222,19 @@ CcRosFlushDirtyPages ( continue; } + ASSERT(current->Dirty); + + KeReleaseQueuedSpinLock(LockQueueMasterLock, OldIrql); + Locked = current->SharedCacheMap->Callbacks->AcquireForLazyWrite( current->SharedCacheMap->LazyWriteContext, Wait); if (!Locked) { + OldIrql = KeAcquireQueuedSpinLock(LockQueueMasterLock); CcRosVacbDecRefCount(current); continue; } - ASSERT(current->Dirty); - - KeReleaseQueuedSpinLock(LockQueueMasterLock, OldIrql); - Status = CcRosFlushVacb(current); current->SharedCacheMap->Callbacks->ReleaseFromLazyWrite(