update_data.state = XML_BOOLEAN_NO; update_data.join  = CRMD_JOINSTATE_DOWN; if(fsa_membership_copy->dead_members != NULL) { g_hash_table_foreach(fsa_membership_copy->dead_members, ghash_update_cib_node, &update_data); }
do_update_cib_nodes(crm_data_t *updates, gboolean overwrite){	int call_options = cib_scope_local|cib_quorum_override;	struct update_data_s update_data;	crm_data_t *fragment = updates;	crm_data_t *tmp = NULL;		if(updates == NULL) {		fragment = create_cib_fragment(NULL, NULL);		set_xml_property_copy(			fragment, XML_ATTR_SECTION, XML_CIB_TAG_STATUS);	}	tmp = find_xml_node(fragment, XML_TAG_CIB, TRUE);	tmp = get_object_root(XML_CIB_TAG_STATUS, tmp);	CRM_DEV_ASSERT(tmp != NULL);		update_data.updates = tmp;	update_data.state = XML_BOOLEAN_NO;	update_data.join  = CRMD_JOINSTATE_DOWN;	if(fsa_membership_copy->dead_members != NULL) {		g_hash_table_foreach(fsa_membership_copy->dead_members,				     ghash_update_cib_node, &update_data);	}		update_data.state = XML_BOOLEAN_YES;	update_data.join  = NULL;	if(overwrite) {		update_data.join = CRMD_JOINSTATE_PENDING;		if(fsa_membership_copy->members != NULL) {			g_hash_table_foreach(fsa_membership_copy->members,					     ghash_update_cib_node, &update_data);		}			} else {		call_options = call_options|cib_inhibit_bcast;		crm_debug("Inhibiting bcast for CCM updates");		if(fsa_membership_copy->members != NULL) {			g_hash_table_foreach(fsa_membership_copy->new_members,					     ghash_update_cib_node, &update_data);		}	}		if(update_data.updates != NULL) {		fsa_cib_conn->cmds->modify(fsa_cib_conn, XML_CIB_TAG_STATUS,					   fragment, NULL, call_options);		free_xml(fragment);	}	return NULL;}