[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [libvirt] [PATCH] check driver name while attaching disk



On 03/17/2011 10:36 PM, Wen Congyang wrote:
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 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 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.
Hi, Daniel PB, and Eric Blake
Can you push this patch?

I just pushed this patch (after verifying that Wen is indeed correct - it is possible for driverName to be NULL if driver->allowDiskFormatProbing is true when qemyCreateCapabilities is called, and later no name is given in the XML being parsed.)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]