[NTOS:CC] Wake up lazy scan after inserting elements in the list.

This commit is contained in:
Jérôme Gardou 2021-02-16 17:17:57 +01:00
parent edd4a985d9
commit 6e4f83da70

View file

@ -381,16 +381,6 @@ CcCanIWrite (
return FALSE;
}
/* Otherwise, if there are no deferred writes yet, start the lazy writer */
if (IsListEmpty(&CcDeferredWrites))
{
KIRQL OldIrql;
OldIrql = KeAcquireQueuedSpinLock(LockQueueMasterLock);
CcScheduleLazyWriteScan(TRUE);
KeReleaseQueuedSpinLock(LockQueueMasterLock, OldIrql);
}
/* Initialize our wait event */
KeInitializeEvent(&WaitEvent, NotificationEvent, FALSE);
@ -418,6 +408,12 @@ CcCanIWrite (
&CcDeferredWriteSpinLock);
}
/* Now make sure that the lazy scan writer will be active */
OldIrql = KeAcquireQueuedSpinLock(LockQueueMasterLock);
if (!LazyWriter.ScanActive)
CcScheduleLazyWriteScan(TRUE);
KeReleaseQueuedSpinLock(LockQueueMasterLock, OldIrql);
#if DBG
DPRINT1("Actively deferring write for: %p\n", FileObject);
DPRINT1("Because:\n");