iBcb->Pinned = TRUE;
if (InterlockedIncrement(&iBcb->Vacb->PinCount) == 1)
{
- KeReleaseMutex(&iBcb->Vacb->Mutex, FALSE);
+ CcRosReleaseVacbLock(iBcb->Vacb);
}
if (Flags & PIN_EXCLUSIVE)
iBcb->Pinned = FALSE;
if (InterlockedDecrement(&iBcb->Vacb->PinCount) == 0)
{
- KeWaitForSingleObject(&iBcb->Vacb->Mutex,
- Executive,
- KernelMode,
- FALSE,
- NULL);
+ CcRosAcquireVacbLock(iBcb->Vacb, NULL);
}
}
IoStatus->Information = 0;
if (WriteThrough)
{
- KeWaitForSingleObject(&iBcb->Vacb->Mutex,
- Executive,
- KernelMode,
- FALSE,
- NULL);
+ CcRosAcquireVacbLock(iBcb->Vacb, NULL);
if (iBcb->Vacb->Dirty)
{
IoStatus->Status = CcRosFlushVacb(iBcb->Vacb);
{
IoStatus->Status = STATUS_SUCCESS;
}
- KeReleaseMutex(&iBcb->Vacb->Mutex, FALSE);
+ CcRosReleaseVacbLock(iBcb->Vacb);
}
else
{
iBcb->Pinned = FALSE;
if (InterlockedDecrement(&iBcb->Vacb->PinCount) == 0)
{
- KeWaitForSingleObject(&iBcb->Vacb->Mutex,
- Executive,
- KernelMode,
- FALSE,
- NULL);
+ CcRosAcquireVacbLock(iBcb->Vacb, NULL);
}
}
ExDeleteResourceLite(&iBcb->Lock);
continue;
}
- Status = KeWaitForSingleObject(¤t->Mutex,
- Executive,
- KernelMode,
- FALSE,
- Wait ? NULL : &ZeroTimeout);
+ Status = CcRosAcquireVacbLock(current,
+ Wait ? NULL : &ZeroTimeout);
if (Status != STATUS_SUCCESS)
{
current->SharedCacheMap->Callbacks->ReleaseFromLazyWrite(
/* One reference is added above */
if (current->ReferenceCount > 2)
{
- KeReleaseMutex(¤t->Mutex, FALSE);
+ CcRosReleaseVacbLock(current);
current->SharedCacheMap->Callbacks->ReleaseFromLazyWrite(
current->SharedCacheMap->LazyWriteContext);
CcRosVacbDecRefCount(current);
Status = CcRosFlushVacb(current);
- KeReleaseMutex(¤t->Mutex, FALSE);
+ CcRosReleaseVacbLock(current);
current->SharedCacheMap->Callbacks->ReleaseFromLazyWrite(
current->SharedCacheMap->LazyWriteContext);
KeReleaseGuardedMutex(&ViewLock);
if (InterlockedCompareExchange(&Vacb->PinCount, 0, 0) == 0)
{
- KeReleaseMutex(&Vacb->Mutex, FALSE);
+ CcRosReleaseVacbLock(Vacb);
}
return STATUS_SUCCESS;
KeReleaseGuardedMutex(&ViewLock);
if (InterlockedCompareExchange(¤t->PinCount, 0, 0) == 0)
{
- KeWaitForSingleObject(¤t->Mutex,
- Executive,
- KernelMode,
- FALSE,
- NULL);
+ CcRosAcquireVacbLock(current, NULL);
}
return current;
}
KeReleaseSpinLock(&SharedCacheMap->CacheMapLock, oldIrql);
KeReleaseGuardedMutex(&ViewLock);
- KeReleaseMutex(&Vacb->Mutex, FALSE);
+ CcRosReleaseVacbLock(Vacb);
return STATUS_SUCCESS;
}
KeReleaseSpinLock(&SharedCacheMap->CacheMapLock, oldIrql);
KeReleaseGuardedMutex(&ViewLock);
- KeReleaseMutex(&Vacb->Mutex, FALSE);
+ CcRosReleaseVacbLock(Vacb);
return STATUS_SUCCESS;
}
current->ReferenceCount = 1;
current->PinCount = 0;
KeInitializeMutex(¤t->Mutex, 0);
- KeWaitForSingleObject(¤t->Mutex,
- Executive,
- KernelMode,
- FALSE,
- NULL);
+ CcRosAcquireVacbLock(current, NULL);
KeAcquireGuardedMutex(&ViewLock);
*Vacb = current;
current);
}
#endif
- KeReleaseMutex(&(*Vacb)->Mutex, FALSE);
+ CcRosReleaseVacbLock(*Vacb);
KeReleaseGuardedMutex(&ViewLock);
ExFreeToNPagedLookasideList(&VacbLookasideList, *Vacb);
*Vacb = current;
if (InterlockedCompareExchange(¤t->PinCount, 0, 0) == 0)
{
- KeWaitForSingleObject(¤t->Mutex,
- Executive,
- KernelMode,
- FALSE,
- NULL);
+ CcRosAcquireVacbLock(current, NULL);
}
return STATUS_SUCCESS;
}
if (InterlockedCompareExchange(¤t->PinCount, 0, 0) == 0)
{
- KeReleaseMutex(¤t->Mutex, FALSE);
+ CcRosReleaseVacbLock(current);
}
KeAcquireGuardedMutex(&ViewLock);