FNIN(); 
do_te_invoke(long long action,	     enum crmd_fsa_cause cause,	     enum crmd_fsa_state cur_state,	     enum crmd_fsa_input current_input,	     void *data){	xmlNodePtr graph = NULL;	xmlNodePtr msg = (xmlNodePtr)data;	FNIN();	if(is_set(fsa_input_register, R_TE_CONNECTED) == FALSE){		crm_info("Waiting for the TE to connect");		if(data != NULL) {			free_xml(te_last_input);			te_last_input = copy_xml_node_recursive(msg);		}		FNRET(I_WAIT_FOR_EVENT);	}	if(msg == NULL) {		msg = te_last_input;		te_last_input = NULL;			} else {		free_xml(te_last_input);	}		if(action & A_TE_INVOKE) {		graph = find_xml_node(msg, "transition_graph");		if(graph == NULL) {			FNRET(I_FAIL);		}			send_request(NULL, graph, CRM_OP_TRANSITION,			     NULL, CRM_SYSTEM_TENGINE, NULL);	} else {		send_request(NULL, graph, CRM_OP_ABORT,			     NULL, CRM_SYSTEM_TENGINE, NULL);	}	// only free it if it was a local copy	if(data == NULL) {		free_xml(msg);	}		FNRET(I_NULL);}
8182	/local/tlutelli/issta_data/temp/c/2005_temp/2005/8182/e096a2906dea1664d64bb7bb2c0e2f5d325541e7/subsystems.c/buggy/crm/crmd/subsystems.c