mirror of
https://github.com/reactos/reactos.git
synced 2024-12-03 00:13:32 +08:00
[NTOS:CC] Acquire the master lock after freeing the VACB in CcRosFlushDirtyPages
Fixes a random ASSERT
This commit is contained in:
parent
b089903520
commit
8631e75837
@ -244,8 +244,12 @@ CcRosFlushDirtyPages (
|
||||
current->SharedCacheMap->Callbacks->ReleaseFromLazyWrite(
|
||||
current->SharedCacheMap->LazyWriteContext);
|
||||
|
||||
OldIrql = KeAcquireQueuedSpinLock(LockQueueMasterLock);
|
||||
/* We release the VACB before acquiring the lock again, because
|
||||
* CcRosVacbDecRefCount might free the VACB, as CcRosFlushVacb dropped a
|
||||
* Refcount. Freeing must be done outside of the lock.
|
||||
* The refcount is decremented atomically. So this is OK. */
|
||||
CcRosVacbDecRefCount(current);
|
||||
OldIrql = KeAcquireQueuedSpinLock(LockQueueMasterLock);
|
||||
|
||||
if (!NT_SUCCESS(Status) && (Status != STATUS_END_OF_FILE) &&
|
||||
(Status != STATUS_MEDIA_WRITE_PROTECTED))
|
||||
|
Loading…
Reference in New Issue
Block a user