summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorPeter Krempa <pkrempa@redhat.com>2022-12-02 10:14:09 +0100
committerPeter Krempa <pkrempa@redhat.com>2022-12-02 16:49:25 +0100
commit3dd4971e299a0e6637061b4588942f8905cda507 (patch)
treef95d4957587671a8d8e5128468329ffe66611cfb /tools
parentbe9560070be18019d744f7715a36a16072abac15 (diff)
downloadlibvirt-3dd4971e299a0e6637061b4588942f8905cda507.tar.gz
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>
Diffstat (limited to 'tools')
-rw-r--r--tools/virsh-domain.c29
1 files changed, 12 insertions, 17 deletions
diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
index c3142edc44..2386672aa6 100644
--- a/tools/virsh-domain.c
+++ b/tools/virsh-domain.c
@@ -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[] = {