if(rc == cib_ok && failed->children != NULL) {
if(rc == cib_ok && xml_has_children(failed)) {
updateList(xmlNodePtr local_cib, xmlNodePtr update_fragment, xmlNodePtr failed,	   int operation, const char *section){	int rc = cib_ok;	xmlNodePtr this_section = get_object_root(section, local_cib);	xmlNodePtr cib_updates  = NULL;	xmlNodePtr xml_section  = NULL;	cib_updates  = find_xml_node(update_fragment, XML_TAG_CIB, TRUE);	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.",			crm_str(section));		return cib_NOSECTION;	}	if(CIB_OP_NONE > operation > CIB_OP_MAX) {		crm_err("Invalid operation on section %s", crm_str(section));		return cib_operation;	}	set_node_tstamp(this_section);	xml_child_iter(		xml_section, a_child, NULL,		rc = cib_ok;		if(operation == CIB_OP_DELETE) {			rc = delete_cib_object(this_section, a_child);			update_results(failed, a_child, operation, rc);		} else if(operation == CIB_OP_MODIFY) {			rc = update_cib_object(this_section, a_child, FALSE);			update_results(failed, a_child, operation, rc);				       		} else {			rc = add_cib_object(this_section, a_child);			update_results(failed, a_child, operation, rc);		} 		);	if(rc == cib_ok && failed->children != NULL) {		rc = cib_unknown;	}	return rc;}