if(change) { update_action(action); }  crm_debug_3("Action %d: %s", action->id, change?"update":"untouched"); 
update_action(action_t *action){	gboolean change = FALSE;	crm_debug_3("Processing action %d", action->id);	slist_iter(		other, action_wrapper_t, action->actions_before, lpc,		crm_debug_3("\tChecking action %d: %s/%s",			    other->action->id, ordering_type2text(other->type),			    other->action->optional?"optional":"required");		if(action->optional == FALSE		   && other->type == pe_ordering_manditory		   && other->action->optional) {			change = TRUE;			other->action->optional = FALSE;			crm_debug_2("Marking action %d manditory because of %d",				    other->action->id, action->id);			update_action(other->action);		} 		);	slist_iter(		other, action_wrapper_t, action->actions_after, lpc,		if(action->pseudo == FALSE		   && action->runnable == FALSE		   && action->optional == FALSE) {			if(other->action->runnable == FALSE) {				crm_debug_2("Action %d already un-runnable",					  other->action->id);				continue;			} else {				change = TRUE;				other->action->runnable =FALSE;				crm_debug_2("Marking action %d un-runnable"					  " because of %d",					  other->action->id, action->id);				update_action(other->action);			}		}				if(action->optional == FALSE && other->action->optional) {			crm_debug_3("\t(restart)Checking action %d",				    other->action->id);	switch(action->rsc->restart_type) {		case pe_restart_ignore:			break;		case pe_restart_restart:			change = TRUE;			other->action->optional = FALSE;			crm_debug_2("(Restart) Marking action %d manditory because of %d",				  other->action->id, action->id);			update_action(other->action);	}		}				);	return change;}
8182	/local/tlutelli/issta_data/temp/c/2005_temp/2005/8182/30b69aa0ec9a0b9f92425e506c4644630504e1f5/graph.c/clean/crm/pengine/graph.c