xmlNodePtr child = NULL;
updateList(xmlNodePtr local_cib, xmlNodePtr update_fragment, xmlNodePtr failed,	   int operation, const char *section){	xmlNodePtr child = NULL;	xmlNodePtr this_section = get_object_root(section, local_cib);	xmlNodePtr cib_updates  = find_xml_node(update_fragment, XML_TAG_CIB);	xmlNodePtr xml_section  = get_object_root(section, cib_updates);	if (section == NULL || xml_section == NULL) {		crm_err("Section %s not found in message."		       "  CIB update is corrupt, ignoring.", section);		return CIBRES_FAILED_NOSECTION;	}	if(CIB_OP_NONE > operation > CIB_OP_MAX) {		crm_err("Invalid operation on section %s", section);		return CIBRES_FAILED;	}		set_node_tstamp(this_section);	child = xml_section->children;    	while(child != NULL) {		if(operation == CIB_OP_DELETE) {			update_results(				failed, child, operation,				delete_cib_object(this_section, child));		} else if(operation == CIB_OP_MODIFY) {			update_results(				failed, child, operation,				update_cib_object(this_section, child, FALSE));				       		} else {			update_results(				failed, child, operation,				add_cib_object(this_section, child));		} 				child = child->next;	}	if (failed->children != NULL)		return CIBRES_FAILED;	else		return CIBRES_OK;	}