At 03/07/2011 07:17 PM, Daniel P. Berrange Write:
On Mon, Mar 07, 2011 at 02:35:49PM +0800, Wen Congyang wrote:
> This bug was reported by Shi Jin(jinzishuai(a)gmail.com):
> =============
> # virsh attach-disk RHEL6RC /var/lib/libvirt/images/test3.img vdb --driver file
--subdriver qcow2
> Disk attached successfully
>
> # virsh save RHEL6RC /var/lib/libvirt/images/memory.save
> Domain RHEL6RC saved to /var/lib/libvirt/images/memory.save
>
> # virsh restore /var/lib/libvirt/images/memory.save
> error: Failed to restore domain from /var/lib/libvirt/images/memory.save
> error: internal error unsupported driver name 'file' for disk
'/var/lib/libvirt/images/test3.img'
> =============
>
> We have checked the driver name when we start or restore VM, but we do not check it
while attaching
> a disk.
>
> Signed-off-by: Wen Congyang <wency(a)cn.fujitsu.com>
>
> ---
> src/qemu/qemu_driver.c | 8 ++++++++
> 1 files changed, 8 insertions(+), 0 deletions(-)
>
> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
> index 2892dfe..e94080d 100644
> --- a/src/qemu/qemu_driver.c
> +++ b/src/qemu/qemu_driver.c
> @@ -3994,6 +3994,14 @@ static int qemudDomainAttachDevice(virDomainPtr dom,
> goto endjob;
>
> if (dev->type == VIR_DOMAIN_DEVICE_DISK) {
> + if (dev->data.disk->driverName != NULL &&
> + !STREQ(dev->data.disk->driverName, "qemu")) {
> + qemuReportError(VIR_ERR_INTERNAL_ERROR,
> + _("unsupported driver name '%s' for disk
'%s'"),
> + dev->data.disk->driverName,
dev->data.disk->src);
> + goto endjob;
> + }
> +
> if (qemuCgroupControllerActive(driver, VIR_CGROUP_CONTROLLER_DEVICES)) {
> if (virCgroupForDomain(driver->cgroup, vm->def->name,
&cgroup, 0) !=0 ) {
> qemuReportError(VIR_ERR_INTERNAL_ERROR,
ACK, though the check for 'DriverName != NULL' is redundant, since the
XML parser guarentees this is non-NULL these days.
The driverName can be null when we set allow_disk_format_probing to 1 and we do not
specify a driverName in xml.
Daniel