[libvirt-users] [PATCHv11 3/6] libvirt/qemu - clean up UpdateDevice for consolidation.
Eric Blake
eblake at redhat.com
Thu Apr 21 21:51:38 UTC 2011
On 04/21/2011 01:25 AM, KAMEZAWA Hiroyuki wrote:
> This patch strips reusable part of qemudDomainUpdateDeviceFlags()
> and consolidate it to qemudDomainModifyDeviceFlags().
> No functional changes.
>
> Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu at jp.fujitsu.com>
>
> Changelog: v10->v11
> - fixed qemuTeardownDiskCgroup()
>
>
> - virCheckFlags(VIR_DOMAIN_DEVICE_MODIFY_LIVE |
> - VIR_DOMAIN_DEVICE_MODIFY_CONFIG, -1);
> + switch (action) {
> + case QEMUD_DEVICE_ATTACH:
> + case QEMUD_DEVICE_DETACH:
> + virCheckFlags(VIR_DOMAIN_DEVICE_MODIFY_LIVE |
> + VIR_DOMAIN_DEVICE_MODIFY_CONFIG, -1);
> + break;
> + case QEMUD_DEVICE_UPDATE:
> + virCheckFlags(VIR_DOMAIN_DEVICE_MODIFY_CURRENT |
> + VIR_DOMAIN_DEVICE_MODIFY_LIVE |
> + VIR_DOMAIN_DEVICE_MODIFY_CONFIG |
> + VIR_DOMAIN_DEVICE_MODIFY_FORCE, -1);
> + break;
> + default:
> + break;
This lets an invalid action through without warning. And _CURRENT is 0,
so it's redundant. I shrunk it a bit.
More qemud/qemu renaming.
ACK, and pushed with this squashed in:
diff --git i/src/qemu/qemu_driver.c w/src/qemu/qemu_driver.c
index b0ca3ce..771678e 100644
--- i/src/qemu/qemu_driver.c
+++ w/src/qemu/qemu_driver.c
@@ -3999,11 +3999,11 @@ qemuDomainDetachDeviceLive(virDomainObjPtr vm,
}
static int
-qemudDomainChangeDiskMediaLive(virDomainObjPtr vm,
- virDomainDeviceDefPtr dev,
- struct qemud_driver *driver,
- virBitmapPtr qemuCaps,
- bool force)
+qemuDomainChangeDiskMediaLive(virDomainObjPtr vm,
+ virDomainDeviceDefPtr dev,
+ struct qemud_driver *driver,
+ virBitmapPtr qemuCaps,
+ bool force)
{
virDomainDiskDefPtr disk = dev->data.disk;
virCgroupPtr cgroup = NULL;
@@ -4046,18 +4046,19 @@ end:
return ret;
}
-static int qemudDomainUpdateDeviceLive(virDomainObjPtr vm,
- virDomainDeviceDefPtr dev,
- virDomainPtr dom,
- virBitmapPtr qemuCaps,
- bool force)
+static int
+qemuDomainUpdateDeviceLive(virDomainObjPtr vm,
+ virDomainDeviceDefPtr dev,
+ virDomainPtr dom,
+ virBitmapPtr qemuCaps,
+ bool force)
{
struct qemud_driver *driver = dom->conn->privateData;
int ret = -1;
switch (dev->type) {
case VIR_DOMAIN_DEVICE_DISK:
- ret = qemudDomainChangeDiskMediaLive(vm, dev, driver, qemuCaps,
force);
+ ret = qemuDomainChangeDiskMediaLive(vm, dev, driver, qemuCaps,
force);
break;
case VIR_DOMAIN_DEVICE_GRAPHICS:
ret = qemuDomainChangeGraphics(driver, vm, dev->data.graphics);
@@ -4091,21 +4092,10 @@ qemuDomainModifyDeviceFlags(virDomainPtr dom,
const char *xml,
bool force = (flags & VIR_DOMAIN_DEVICE_MODIFY_FORCE) != 0;
int ret = -1;
- switch (action) {
- case QEMU_DEVICE_ATTACH:
- case QEMU_DEVICE_DETACH:
- virCheckFlags(VIR_DOMAIN_DEVICE_MODIFY_LIVE |
- VIR_DOMAIN_DEVICE_MODIFY_CONFIG, -1);
- break;
- case QEMU_DEVICE_UPDATE:
- virCheckFlags(VIR_DOMAIN_DEVICE_MODIFY_CURRENT |
- VIR_DOMAIN_DEVICE_MODIFY_LIVE |
- VIR_DOMAIN_DEVICE_MODIFY_CONFIG |
- VIR_DOMAIN_DEVICE_MODIFY_FORCE, -1);
- break;
- default:
- break;
- }
+ virCheckFlags(VIR_DOMAIN_DEVICE_MODIFY_LIVE |
+ VIR_DOMAIN_DEVICE_MODIFY_CONFIG |
+ (action == QEMU_DEVICE_UPDATE ?
+ VIR_DOMAIN_DEVICE_MODIFY_FORCE : 0), -1);
if (flags & VIR_DOMAIN_DEVICE_MODIFY_CONFIG) {
qemuReportError(VIR_ERR_OPERATION_INVALID,
@@ -4150,9 +4140,11 @@ qemuDomainModifyDeviceFlags(virDomainPtr dom,
const char *xml,
ret = qemuDomainDetachDeviceLive(vm, dev, dom, qemuCaps);
break;
case QEMU_DEVICE_UPDATE:
- ret = qemudDomainUpdateDeviceLive(vm, dev, dom, qemuCaps, force);
+ ret = qemuDomainUpdateDeviceLive(vm, dev, dom, qemuCaps, force);
break;
default:
+ qemuReportError(VIR_ERR_INTERNAL_ERROR,
+ _("unknown domain modify action %d"), action);
break;
}
--
Eric Blake eblake at redhat.com +1-801-349-2682
Libvirt virtualization library http://libvirt.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 619 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvirt-users/attachments/20110421/152b68cd/attachment.sig>
More information about the libvirt-users
mailing list