Windows: AFSObjectInfoDecrement correct return value
authorJeffrey Altman <jaltman@your-file-system.com>
Mon, 4 Feb 2013 21:22:56 +0000 (16:22 -0500)
committerJeffrey Altman <jaltman@your-file-system.com>
Wed, 6 Feb 2013 05:14:43 +0000 (21:14 -0800)
The return value must be the new ObjectReferenceCount value not
the value of the Reason counter.  This was broken by patchset
e267774f1a4f9cc5bfc32c545df36a4bf7947607.

Change-Id: I9dd3cd56f6c7d43f061bdda8e24666b5f9a4ed9b
Reviewed-on: http://gerrit.openafs.org/9068
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>

src/WINNT/afsrdr/kernel/lib/AFSGeneric.cpp

index 5b50bb3..a152e1d 100644 (file)
@@ -6683,7 +6683,7 @@ AFSObjectInfoDecrement( IN AFSObjectInfoCB *ObjectInfo,
                         IN LONG Reason)
 {
 
-    LONG lCount;
+    LONG lCount, lCount2;
 
     AFSAcquireShared( &ObjectInfo->NonPagedInfo->ObjectInfoLock,
                       TRUE);
@@ -6703,9 +6703,9 @@ AFSObjectInfoDecrement( IN AFSObjectInfoCB *ObjectInfo,
         lCount = InterlockedDecrement( &ObjectInfo->ObjectReferenceCount);
     }
 
-    lCount = InterlockedDecrement( &ObjectInfo->ObjectReferences[ Reason]);
+    lCount2 = InterlockedDecrement( &ObjectInfo->ObjectReferences[ Reason]);
 
-    ASSERT( lCount >= 0);
+    ASSERT( lCount2 >= 0);
 
     AFSReleaseResource( &ObjectInfo->NonPagedInfo->ObjectInfoLock);