From: Marc Fiuczynski Date: Thu, 26 May 2005 20:06:25 +0000 (+0000) Subject: bug fix X-Git-Tag: before-fedora-2_6_18-1_2239_FC5-vs2_0_2_2-rc6-merge~203 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=4887c7eb03d842dfdce438df49aa2baebae5db43;p=linux-2.6.git bug fix --- diff --git a/kernel/ckrm/ckrm_numtasks.c b/kernel/ckrm/ckrm_numtasks.c index c0583055d..f3c94d5f6 100644 --- a/kernel/ckrm/ckrm_numtasks.c +++ b/kernel/ckrm/ckrm_numtasks.c @@ -304,10 +304,13 @@ recalc_and_propagate(struct ckrm_numtasks * res, struct ckrm_numtasks * parres) ckrm_lock_hier(res->core); while ((child = ckrm_get_next_child(res->core, child)) != NULL) { childres = ckrm_get_res_class(child, resid, struct ckrm_numtasks); - - spin_lock(&childres->cnt_lock); - recalc_and_propagate(childres, res); - spin_unlock(&childres->cnt_lock); + if (childres) { + spin_lock(&childres->cnt_lock); + recalc_and_propagate(childres, res); + spin_unlock(&childres->cnt_lock); + } else { + printk(KERN_ERR "%s: numtasks resclass missing\n",__FUNCTION__); + } } ckrm_unlock_hier(res->core); return; @@ -324,7 +327,7 @@ static int numtasks_set_share_values(void *my_res, struct ckrm_shares *new) if (res->parent) { parres = - ckrm_get_res_class(res->parent, resid, struct ckrm_numtasks); + ckrm_get_res_class(res->parent, resid, struct ckrm_numtasks); spin_lock(&parres->cnt_lock); spin_lock(&res->cnt_lock); par = &parres->shares;