mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-21 19:02:25 +00:00
virsh: cmdChangeMedia: Refactor cleanup
Use automatic pointer freeing for the 'disk_node' variable and remove the 'cleanup' label and 'ret' variable. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
be9560070b
commit
3dd4971e29
@ -13089,9 +13089,8 @@ cmdChangeMedia(vshControl *ctl, const vshCmd *cmd)
|
||||
const char *source = NULL;
|
||||
const char *path = NULL;
|
||||
g_autofree char *doc = NULL;
|
||||
xmlNodePtr disk_node = NULL;
|
||||
g_autoptr(xmlNode) disk_node = NULL;
|
||||
g_autofree char *disk_xml = NULL;
|
||||
bool ret = false;
|
||||
virshUpdateDiskXMLType update_type;
|
||||
const char *action = NULL;
|
||||
const char *success_msg = NULL;
|
||||
@ -13152,38 +13151,34 @@ cmdChangeMedia(vshControl *ctl, const vshCmd *cmd)
|
||||
return false;
|
||||
|
||||
if (vshCommandOptStringReq(ctl, cmd, "path", &path) < 0)
|
||||
goto cleanup;
|
||||
return false;
|
||||
|
||||
if (flags & VIR_DOMAIN_AFFECT_CONFIG)
|
||||
doc = virDomainGetXMLDesc(dom, VIR_DOMAIN_XML_INACTIVE);
|
||||
else
|
||||
doc = virDomainGetXMLDesc(dom, 0);
|
||||
if (!doc)
|
||||
goto cleanup;
|
||||
return false;
|
||||
|
||||
if (!(disk_node = virshFindDisk(doc, path, VIRSH_FIND_DISK_CHANGEABLE)))
|
||||
goto cleanup;
|
||||
return false;
|
||||
|
||||
if (!(disk_xml = virshUpdateDiskXML(disk_node, source, block, path,
|
||||
update_type)))
|
||||
goto cleanup;
|
||||
return false;
|
||||
|
||||
if (vshCommandOptBool(cmd, "print-xml")) {
|
||||
vshPrint(ctl, "%s", disk_xml);
|
||||
} else {
|
||||
if (virDomainUpdateDeviceFlags(dom, disk_xml, flags) != 0) {
|
||||
vshError(ctl, _("Failed to complete action %s on media"), action);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
vshPrint(ctl, "%s", success_msg);
|
||||
return true;
|
||||
}
|
||||
|
||||
ret = true;
|
||||
if (virDomainUpdateDeviceFlags(dom, disk_xml, flags) != 0) {
|
||||
vshError(ctl, _("Failed to complete action %s on media"), action);
|
||||
return false;
|
||||
}
|
||||
|
||||
cleanup:
|
||||
xmlFreeNode(disk_node);
|
||||
return ret;
|
||||
vshPrint(ctl, "%s", success_msg);
|
||||
return true;
|
||||
}
|
||||
|
||||
static const vshCmdInfo info_domfstrim[] = {
|
||||
|
Loading…
x
Reference in New Issue
Block a user