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

Laine Stump laine at laine.org
Fri Mar 18 04:40:34 UTC 2011


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 at 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 at 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.)




More information about the libvir-list mailing list