fsa_dump_actions(actions, "Action b4"); fsa_dump_actions(actions ^ tmp, "New action"); 
fsa_dump_actions(actions ^ tmp, "New actions"); 
do_state_transition(long long actions,		    enum crmd_fsa_cause cause,		    enum crmd_fsa_state cur_state,		    enum crmd_fsa_state next_state,		    enum crmd_fsa_input current_input,		    fsa_data_t *msg_data){	gboolean clear_recovery_bit = TRUE;	long long tmp = actions;	const char *state_from = fsa_state2string(cur_state);	const char *state_to   = fsa_state2string(next_state);	const char *input      = fsa_input2string(current_input);		time_t now = time(NULL);	if(cur_state == next_state) {		crm_err("%s called in state %s with no transtion",		       __FUNCTION__, state_from);		return A_NOTHING;	}		if(current_input != I_DC_HEARTBEAT && cur_state != S_NOT_DC){		crm_debug(DOT_PREFIX"\t\"%s\" -> \"%s\" [ label=\"%s\" cause=%s origin=%s ] // %s",			  state_from, state_to, input, fsa_cause2string(cause), msg_data->origin,			  asctime(localtime(&now)));	}	crm_info("State transition \"%s\" -> \"%s\""		 " [ input=%s cause=%s origin=%s %s ]",		 state_from, state_to, input,		 fsa_cause2string(cause), msg_data->origin,		 asctime(localtime(&now)));	/* the last two clauses might cause trouble later */	if(election_timeout != NULL	   && next_state != S_ELECTION	   && next_state != S_RELEASE_DC	   && next_state != S_PENDING) {		stopTimer(election_timeout);/* 	} else { *//* 		startTimer(election_timeout); */	}	if(is_set(fsa_input_register, R_SHUTDOWN)){		set_bit_inplace(tmp, A_DC_TIMER_STOP);	}	switch(next_state) {		case S_PENDING:					case S_ELECTION:			crm_info("Resetting our DC to NULL on election");			crm_free(fsa_our_dc);			fsa_our_dc = NULL;			/*fall through*/		case S_RELEASE_DC:			set_bit_inplace(tmp, A_INTEGRATE_TIMER_STOP);			set_bit_inplace(tmp, A_FINALIZE_TIMER_STOP);			break;		case S_NOT_DC:			set_bit_inplace(tmp, A_DC_TIMER_STOP);			if(is_set(fsa_input_register, R_SHUTDOWN)){				crm_info("(Re)Issuing shutdown request now"					 " that we have a new DC");				set_bit_inplace(tmp, A_SHUTDOWN_REQ);			}			CRM_DEV_ASSERT(fsa_our_dc != NULL);			if(fsa_our_dc == NULL) {				crm_err("Reached S_NOT_DC without a DC"					" being recorded");			}			break;		case S_RECOVERY:			set_bit_inplace(tmp, A_DC_TIMER_STOP);			clear_recovery_bit = FALSE;			break;		case S_INTEGRATION:			set_bit_inplace(tmp, A_DC_TIMER_STOP);			set_bit_inplace(tmp, A_INTEGRATE_TIMER_START);			set_bit_inplace(tmp, A_FINALIZE_TIMER_STOP);				break;		case S_FINALIZE_JOIN:			set_bit_inplace(tmp, A_INTEGRATE_TIMER_STOP);			set_bit_inplace(tmp, A_FINALIZE_TIMER_START);						if(cause != C_FSA_INTERNAL) {				crm_warn("Progressed to state %s after %s",					 fsa_state2string(cur_state),					 fsa_cause2string(cause));			}			if(g_hash_table_size(join_requests)			   != fsa_membership_copy->members_size) {				crm_warn("Only %d (of %d) cluster nodes "					 "responded to the join offer.",					 g_hash_table_size(join_requests),					 fsa_membership_copy->members_size);			} else {				crm_info("All %d clusters nodes "					 "responded to the join offer.",					 fsa_membership_copy->members_size);			}			break;					case S_POLICY_ENGINE:			set_bit_inplace(tmp, A_FINALIZE_TIMER_STOP);			if(cause != C_FSA_INTERNAL) {				crm_warn("Progressed to state %s after %s",					 fsa_state2string(cur_state),					 fsa_cause2string(cause));			}						if(g_hash_table_size(confirmed_nodes)			   == fsa_membership_copy->members_size) {				crm_info("All %d clusters nodes are"					 " eligable to run resources.",					 fsa_membership_copy->members_size);			} else if(g_hash_table_size(confirmed_nodes)				  == num_join_invites) {				crm_warn("All %d (%d total) cluster "					 "nodes are eligable to run resources",					 g_hash_table_size(confirmed_nodes),					 fsa_membership_copy->members_size);			} else {				crm_warn("Only %d of %d (%d total) cluster "					 "nodes are eligable to run resources",					 g_hash_table_size(confirmed_nodes),					 num_join_invites,					 fsa_membership_copy->members_size);			}/* 			initialize_join(FALSE); */			break;					case S_IDLE:			dump_rsc_info();			break;					default:			break;	}	if(clear_recovery_bit && next_state != S_PENDING) {		tmp = clear_bit(tmp, A_RECOVER);	} else if(clear_recovery_bit == FALSE) {		tmp = set_bit(tmp, A_RECOVER);	}		if(tmp != actions) {		fsa_dump_actions(actions, "Action b4");		fsa_dump_actions(actions ^ tmp, "New action");		actions = tmp;	}	return actions;}
8182	/local/tlutelli/issta_data/temp/c/2005_temp/2005/8182/2021ddb454d3829169af3a91fbaa194ed46f77fb/fsa.c/clean/crm/crmd/fsa.c