[NTOSKRNL] Handle the PIN_WAIT flag in CcPinMappedData()
authorPierre Schweitzer <pierre@reactos.org>
Sun, 26 Aug 2018 20:04:46 +0000 (22:04 +0200)
committerPierre Schweitzer <pierre@reactos.org>
Sun, 26 Aug 2018 20:05:11 +0000 (22:05 +0200)
ntoskrnl/cc/pin.c

index 8b99b8c..0eaf502 100644 (file)
@@ -161,6 +161,7 @@ CcPinMappedData (
     IN ULONG Flags,
     OUT        PVOID * Bcb)
 {
+    BOOLEAN Result;
     PINTERNAL_BCB iBcb;
     PROS_SHARED_CACHE_MAP SharedCacheMap;
 
@@ -181,16 +182,16 @@ CcPinMappedData (
     iBcb->Pinned = TRUE;
     iBcb->Vacb->PinCount++;
 
-    if (Flags & PIN_EXCLUSIVE)
+    if (BooleanFlagOn(Flags, PIN_EXCLUSIVE))
     {
-        ExAcquireResourceExclusiveLite(&iBcb->Lock, TRUE);
+        Result = ExAcquireResourceExclusiveLite(&iBcb->Lock, BooleanFlagOn(Flags, PIN_WAIT));
     }
     else
     {
-        ExAcquireResourceSharedLite(&iBcb->Lock, TRUE);
+        Result = ExAcquireResourceSharedLite(&iBcb->Lock, BooleanFlagOn(Flags, PIN_WAIT));
     }
 
-    return TRUE;
+    return Result;
 }
 
 /*