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

Wen Congyang wency at cn.fujitsu.com
Tue Mar 8 01:39:12 UTC 2011


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.

The driverName can be null when we set allow_disk_format_probing to 1 and we do not
specify a driverName in xml.

> 
> Daniel




More information about the libvir-list mailing list