Resolves:https://bugzilla.redhat.com/show_bug.cgi?id=923053 When cdrom is block type, the virsh change-media failed to insert source info because virsh uses "<source block='/dev/sdb'/>" while the correct name of the attribute for block disks is "dev". Correct XML: <disk type='block' device='cdrom'> <driver name='qemu' type='raw'/> <source dev='/dev/sdb'/> <target dev='vdb' bus='virtio'/> <readonly/> </disk> And, this patch supports cdrom with volume type for change-media command For example: '/var/lib/libvirt/images/boot.iso' is a volume path of 'boot.iso' volume on 'default' pool and the cdrom device has no source. Virsh command: virsh change-media rhel6qcow2 vdb /var/lib/libvirt/images/boot.iso --insert The updated disk XML: <disk type='volume' device='cdrom'> <driver name='qemu' type='raw'/> <source pool='default' volume='boot.iso'/> <target dev='vdb' bus='virtio'/> <readonly/> </disk> Guannan Ren(3) [PATCH 1/3] qemu: throw original error when failing to lookup pool or volume [PATCH 2/3] qemu: support updating pool and volume info when disk is volume type [PATCH 3/3] virsh: fix change-media bug on disk block type and support volume type src/conf/domain_conf.c | 2 +- src/conf/domain_conf.h | 1 + src/libvirt_private.syms | 1 + src/qemu/qemu_conf.c | 11 ++++++++++- src/qemu/qemu_driver.c | 5 +++++ tools/virsh-domain.c | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++------ 6 files changed, 69 insertions(+), 8 deletions(-) -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list