mirror of
https://github.com/reactos/reactos.git
synced 2026-06-20 14:36:01 +08:00
[NTOS:CC] Wake up lazy scan after inserting elements in the list.
This commit is contained in:
@@ -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");
|
||||
|
||||
Reference in New Issue
Block a user