if (array) 
if (array) { 
void set_user_nice(task_t *p, long nice){	unsigned long flags;	prio_array_t *array;	runqueue_t *rq;	int old_prio, new_prio, delta;	if (TASK_NICE(p) == nice || nice < -20 || nice > 19)		return;	/*	 * We have to be careful, if called from sys_setpriority(),	 * the task might be in the middle of scheduling on another CPU.	 */	rq = task_rq_lock(p, &flags);	/*	 * The RT priorities are set via sched_setscheduler(), but we still	 * allow the 'normal' nice value to be set - but as expected	 * it wont have any effect on scheduling until the task is	 * not SCHED_NORMAL:	 */	if (rt_task(p)) {		dec_prio_bias(rq, p->static_prio);		p->static_prio = NICE_TO_PRIO(nice);		inc_prio_bias(rq, p->static_prio);		goto out_unlock;	}	array = p->array;	if (array)		dequeue_task(p, array);	old_prio = p->prio;	new_prio = NICE_TO_PRIO(nice);	delta = new_prio - old_prio;	dec_prio_bias(rq, p->static_prio);	p->static_prio = NICE_TO_PRIO(nice);	inc_prio_bias(rq, p->static_prio);	p->prio += delta;	if (array) {		enqueue_task(p, array);		/*		 * If the task increased its priority or is running and		 * lowered its priority, then reschedule its CPU:		 */		if (delta < 0 || (delta > 0 && task_running(rq, p)))			resched_task(rq->curr);	}out_unlock:	task_rq_unlock(rq, &flags);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/738a2ccbcf8c2c1b039f1e76662dce60b22b694b/sched.c/clean/kernel/sched.c