mirror of
https://github.com/reactos/reactos.git
synced 2024-09-28 21:44:31 +00:00
[NTOSKRNL] Don't call AcquireForLazyWrite with the master lock held
This incorrect behavior was leading to a call at too high IRQL for paged code. This was triggered by MS FastFAT. ReleaseFromLazyWrite call was already correctly called to that regard. CORE-11819
This commit is contained in:
parent
85cd2849c0
commit
1435ff95b4
|
@ -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(
|
||||
|
|
Loading…
Reference in a new issue