commit e33cd67a9b51e8fcb4e084f40f500057b30b2786 Author: Jim Fehlig Date: Wed Jun 15 23:09:36 2016 -0600 xenconfig: fix conversion of to backendtype When converting domXML to xen xl.cfg, backendtype should not be emitted if is not specified. Moreover, should be converted to backendtype qdisk, similar to handling of in libxlMakeDisk() in libxl_conf.c. Prior to this change, connectDomainXMLToNative would produce incorrect xl.cfg when the input domXML contained domXML: virsh domxml-to-native xen-xl domXML disk = [ "format=raw,vdev=xvda,access=rw,backendtype=target=/image/file/path" ] xl create xl.cfg config parsing error in disk specification: unknown value for backendtype: near `target=/image/file/path' in `format=raw,vdev=xvda,access=rw,backendtype=target=/image/file/path' Index: libvirt-1.3.5/src/xenconfig/xen_xl.c =================================================================== --- libvirt-1.3.5.orig/src/xenconfig/xen_xl.c +++ libvirt-1.3.5/src/xenconfig/xen_xl.c @@ -752,13 +752,15 @@ xenFormatXLDisk(virConfValuePtr list, vi } /* backendtype */ - virBufferAddLit(&buf, "backendtype="); - if (STREQ_NULLABLE(driver, "qemu")) - virBufferAddLit(&buf, "qdisk,"); - else if (STREQ_NULLABLE(driver, "tap")) - virBufferAddLit(&buf, "tap,"); - else if (STREQ_NULLABLE(driver, "phy")) - virBufferAddLit(&buf, "phy,"); + if (driver) { + virBufferAddLit(&buf, "backendtype="); + if (STREQ(driver, "qemu") || STREQ(driver, "file")) + virBufferAddLit(&buf, "qdisk,"); + else if (STREQ(driver, "tap")) + virBufferAddLit(&buf, "tap,"); + else if (STREQ(driver, "phy")) + virBufferAddLit(&buf, "phy,"); + } /* devtype */ if (disk->device == VIR_DOMAIN_DISK_DEVICE_CDROM)