add_node_copy(object_root, update);
xmlAddChildList(object_root, xmlCopyNodeList(update));
create_cib_fragment(xmlNodePtr update, const char *section){	gboolean whole_cib = FALSE;	xmlNodePtr fragment = create_xml_node(NULL, XML_TAG_FRAGMENT);	xmlNodePtr cib = NULL;	xmlNodePtr object_root  = NULL;	char *auto_section = pluralSection(update?update->name:NULL);		if(update == NULL) {		cl_log(LOG_ERR, "No update to create a fragment for");		crm_free(auto_section);		return NULL;			} else if(section == NULL) {		section = auto_section;	} else if(strcmp(auto_section, section) != 0) {		cl_log(LOG_ERR,		       "Values for update (tag=%s) and section (%s)"		       " were not consistent", update->name, section);		crm_free(auto_section);		return NULL;			}	if(strcmp(section, "all")==0 && strcmp(update->name, XML_TAG_CIB)==0) {		whole_cib = TRUE;	}		set_xml_property_copy(fragment, XML_ATTR_SECTION, section);	if(whole_cib == FALSE) {		cib = createEmptyCib();		object_root = get_object_root(section, cib);		add_node_copy(object_root, update);	} else {		cib = xmlCopyNodeList(update);	}		xmlAddChild(fragment, cib);	CRM_DEBUG("Fragment created");	xml_message_debug(fragment, "created fragment");			crm_free(auto_section);	return fragment;}