Thanks Wen.
However, this patch only adds the checking but to make it work we really
have to replace the driver name 'file' with 'qemu', don't we?
Thank you very much.
Shi
On Sun, Mar 6, 2011 at 11:35 PM, Wen Congyang <wency(a)cn.fujitsu.com> 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,
--
1.7.1
--
Shi Jin, Ph.D.