It is generally considered a good idea to release a fast mutex in the same order that you acquired it, since acquiring at passive->apc and apc->apc does not bode well when you release to apc->passive. passive->apc. This fixes the npfs bug on vmware, lowering the total npfs bug count to a mere 42.

svn path=/trunk/; revision=19357
This commit is contained in:
Alex Ionescu 2005-11-20 08:46:09 +00:00
parent 4c62f96aad
commit 474b9e8155

View file

@ -618,13 +618,13 @@ NpfsCleanup(PDEVICE_OBJECT DeviceObject,
KeSetEvent(&OtherSide->WriteEvent, IO_NO_INCREMENT, FALSE);
if (Server)
{
ExReleaseFastMutex(&OtherSide->DataListLock);
ExReleaseFastMutex(&Fcb->DataListLock);
ExReleaseFastMutex(&OtherSide->DataListLock);
}
else
{
ExReleaseFastMutex(&OtherSide->DataListLock);
ExReleaseFastMutex(&Fcb->DataListLock);
ExReleaseFastMutex(&Fcb->DataListLock);
ExReleaseFastMutex(&OtherSide->DataListLock);
}
}
else if (Fcb->PipeState == FILE_PIPE_LISTENING_STATE)