clear_bit_inplace(fsa_input_register, R_CIB_ASKED); crm_debug_3("Bumping the epoche and syncing to %d clients", g_hash_table_size(finalized_nodes)); fsa_cib_conn->cmds->bump_epoch( fsa_cib_conn, cib_scope_local|cib_quorum_override);  #if JOIN_AFTER_SYNC crm_debug("Notifying %d clients of join results", g_hash_table_size(integrated_nodes));  if(check_join_state(cur_state, __FUNCTION__) == FALSE) { crm_debug("Notifying %d clients of join results", g_hash_table_size(integrated_nodes)); g_hash_table_foreach_remove( integrated_nodes, finalize_join_for, NULL); } #endif  rc = fsa_cib_conn->cmds->sync(fsa_cib_conn, NULL, cib_quorum_override);
finalize_join(__FUNCTION__);
do_dc_join_finalize(long long action,		    enum crmd_fsa_cause cause,		    enum crmd_fsa_state cur_state,		    enum crmd_fsa_input current_input,		    fsa_data_t *msg_data){	enum cib_errors rc = cib_ok;	/* This we can do straight away and avoid clients timing us out	 *  while we compute the latest CIB	 */#if JOIN_AFTER_SYNC	crm_debug("Finializing join for %d clients",		  g_hash_table_size(integrated_nodes));#else	crm_debug("Notifying %d clients of join results",		  g_hash_table_size(integrated_nodes));	g_hash_table_foreach_remove(		integrated_nodes, finalize_join_for, NULL);#endif	clear_bit_inplace(fsa_input_register, R_HAVE_CIB);	if(max_generation_from == NULL	   || safe_str_eq(max_generation_from, fsa_our_uname)){		set_bit_inplace(fsa_input_register, R_HAVE_CIB);	}		if(is_set(fsa_input_register, R_HAVE_CIB) == FALSE) {		/* ask for the agreed best CIB */		crm_info("Asking %s for its copy of the CIB",			 crm_str(max_generation_from));		set_bit_inplace(fsa_input_register, R_CIB_ASKED);		fsa_cib_conn->call_timeout = 10;		rc = fsa_cib_conn->cmds->sync_from(			fsa_cib_conn, max_generation_from, NULL,			cib_quorum_override);		fsa_cib_conn->call_timeout = 0; /* back to the default */		add_cib_op_callback(rc, FALSE, crm_strdup(max_generation_from),				    finalize_sync_callback);		return I_NULL;	}		clear_bit_inplace(fsa_input_register, R_CIB_ASKED);	crm_debug_3("Bumping the epoche and syncing to %d clients",		  g_hash_table_size(finalized_nodes));	fsa_cib_conn->cmds->bump_epoch(		fsa_cib_conn, cib_scope_local|cib_quorum_override);#if JOIN_AFTER_SYNC	crm_debug("Notifying %d clients of join results",		  g_hash_table_size(integrated_nodes));	if(check_join_state(cur_state, __FUNCTION__) == FALSE) {		crm_debug("Notifying %d clients of join results",			  g_hash_table_size(integrated_nodes));		g_hash_table_foreach_remove(			integrated_nodes, finalize_join_for, NULL);	}#endif		rc = fsa_cib_conn->cmds->sync(fsa_cib_conn, NULL, cib_quorum_override);	return I_NULL;}