From: Marc Fiuczynski <mef@cs.princeton.edu>
Date: Tue, 19 Apr 2005 12:48:30 +0000 (+0000)
Subject: don't decrement below zero
X-Git-Tag: before-fedora-2_6_18-1_2239_FC5-vs2_0_2_2-rc6-merge~216
X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=97f93fd0a13d9ed8f5af59170062afc9bebe195a;p=linux-2.6.git

don't decrement below zero
---

diff --git a/kernel/ckrm/ckrm_numtasks.c b/kernel/ckrm/ckrm_numtasks.c
index 7b02a6ca2..c0583055d 100644
--- a/kernel/ckrm/ckrm_numtasks.c
+++ b/kernel/ckrm/ckrm_numtasks.c
@@ -165,7 +165,12 @@ static void numtasks_put_ref_local(struct ckrm_core_class *core)
 	res = ckrm_get_res_class(core, resid, struct ckrm_numtasks);
 	if (res == NULL)
 		return;
+
+	if (atomic_read(&res->cnt_cur_alloc)==0)
+		return;
+
 	atomic_dec(&res->cnt_cur_alloc);
+
 	if (atomic_read(&res->cnt_borrowed) > 0) {
 		atomic_dec(&res->cnt_borrowed);
 		numtasks_put_ref_local(res->parent);