Since cmdDetachDisk() calls into vshPrepareDiskXML() with type == VSH_PREPARE_DISK_XML_NONE && source == NULL this would result into skipping all the checks and effectively turn the function into a XML formatter. This patch changes the code to use the formatter directly so that the function can be refactored in a easier way. --- tools/virsh-domain.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c index 1a364bb..8bc0512 100644 --- a/tools/virsh-domain.c +++ b/tools/virsh-domain.c @@ -11365,9 +11365,10 @@ cmdDetachDisk(vshControl *ctl, const vshCmd *cmd) if (!(disk_node = vshFindDisk(doc, target, VSH_FIND_DISK_NORMAL))) goto cleanup; - if (!(disk_xml = vshPrepareDiskXML(disk_node, NULL, NULL, - VSH_PREPARE_DISK_XML_NONE))) + if (!(disk_xml = virXMLNodeToString(NULL, disk_node))) { + vshSaveLibvirtError(); goto cleanup; + } if (flags != 0 || current) ret = virDomainDetachDeviceFlags(dom, disk_xml, flags); -- 2.2.2 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list