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. Modified: trunk/reactos/drivers/fs/np/create.c _____
Modified: trunk/reactos/drivers/fs/np/create.c --- trunk/reactos/drivers/fs/np/create.c 2005-11-20 08:41:46 UTC (rev 19356) +++ trunk/reactos/drivers/fs/np/create.c 2005-11-20 08:46:09 UTC (rev 19357) @@ -618,13 +618,13 @@
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)