don't count references for the default quota block and fixed warnings
authorThomas Bluemel <thomas@reactsoft.com>
Mon, 1 Aug 2005 11:58:47 +0000 (11:58 +0000)
committerThomas Bluemel <thomas@reactsoft.com>
Mon, 1 Aug 2005 11:58:47 +0000 (11:58 +0000)
svn path=/trunk/; revision=16947

reactos/ntoskrnl/ps/quota.c

index 494287d..3ae865b 100644 (file)
@@ -19,17 +19,18 @@ VOID
 STDCALL
 PspInheritQuota(PEPROCESS Process, PEPROCESS ParentProcess)
 {
-    PEPROCESS_QUOTA_BLOCK QuotaBlock;
-
     if (ParentProcess != NULL)
-        QuotaBlock = ParentProcess->QuotaBlock;
-    else
-        QuotaBlock = &PspDefaultQuotaBlock;
-
-    ASSERT(QuotaBlock != NULL);
+    {
+        PEPROCESS_QUOTA_BLOCK QuotaBlock = ParentProcess->QuotaBlock;
+        
+        ASSERT(QuotaBlock != NULL);
 
-    InterlockedIncrement(&QuotaBlock->ReferenceCount);
-    Process->QuotaBlock = QuotaBlock;
+        InterlockedIncrementUL(&QuotaBlock->ReferenceCount);
+        
+        Process->QuotaBlock = QuotaBlock;
+    }
+    else
+        Process->QuotaBlock = &PspDefaultQuotaBlock;
 }
 
 VOID
@@ -38,10 +39,10 @@ PspDestroyQuotaBlock(PEPROCESS Process)
 {
     PEPROCESS_QUOTA_BLOCK QuotaBlock = Process->QuotaBlock;
 
-    if (InterlockedDecrement(&QuotaBlock->ReferenceCount) == 0)
+    if (QuotaBlock != &PspDefaultQuotaBlock &&
+        InterlockedDecrementUL(&QuotaBlock->ReferenceCount) == 0)
     {
-        if (QuotaBlock != &PspDefaultQuotaBlock)
-            ExFreePool(QuotaBlock);
+        ExFreePool(QuotaBlock);
     }
 }