On Tue, 19 Apr 2011 17:29:08 +0800 Wen Congyang <wency@xxxxxxxxxxxxxx> wrote: > At 04/19/2011 03:40 PM, KAMEZAWA Hiroyuki Write: > > > > Centralize device modification in the more flexible APIs, to allow > > future honoring of additional flags. Explicitly reject the > > VIR_DOMAIN_DEVICE_MODIFY_FORCE flag on attach/detach. > > > > Based on Eric Blake<eblake@xxxxxxxxxx>'s work. > > > > From: Eric Blake <eblake@xxxxxxxxxx> > > Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx> > > > > * src/qemu/qemu_driver.c (qemudDomainAttachDevice) > > (qemudDomainAttachDeviceFlags): Swap bodies, and rename... > > Hmm, you do not rename the function(qemudDomainAttachDevice ===> qemuDomainAttachDevice) > typo > > (qemuDomainAttachDevice, qemuDomainAttachDeviceFlags): to this. > > Hmm, it may be update not attach here. > typo > > (qemudDomainDetachDevice, qemudDomainDetachDeviceFlags): > > Missing 'Likewise.' > ? Thanks, -Kame > > --- > > src/qemu/qemu_driver.c | 53 ++++++++++++++++++++++++++--------------------- > > 1 files changed, 29 insertions(+), 24 deletions(-) > > > > diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c > > index f6e503a..a8f3849 100644 > > --- a/src/qemu/qemu_driver.c > > +++ b/src/qemu/qemu_driver.c > > @@ -3786,8 +3786,8 @@ cleanup: > > } > > > > > > -static int qemudDomainAttachDevice(virDomainPtr dom, > > - const char *xml) > > +static int qemudDomainAttachDeviceFlags(virDomainPtr dom, const char *xml, > > + unsigned int flags) > > { > > struct qemud_driver *driver = dom->conn->privateData; > > virDomainObjPtr vm; > > @@ -3796,6 +3796,14 @@ static int qemudDomainAttachDevice(virDomainPtr dom, > > virCgroupPtr cgroup = NULL; > > int ret = -1; > > > > + virCheckFlags(VIR_DOMAIN_DEVICE_MODIFY_LIVE | > > + VIR_DOMAIN_DEVICE_MODIFY_CONFIG, -1); > > + if (flags & VIR_DOMAIN_DEVICE_MODIFY_CONFIG) { > > + qemuReportError(VIR_ERR_OPERATION_INVALID, > > + "%s", _("cannot modify the persistent configuration of a domain")); > > + return -1; > > + } > > + > > qemuDriverLock(driver); > > vm = virDomainFindByUUID(&driver->domains, dom->uuid); > > if (!vm) { > > @@ -3943,16 +3951,10 @@ cleanup: > > return ret; > > } > > > > -static int qemudDomainAttachDeviceFlags(virDomainPtr dom, > > - const char *xml, > > - unsigned int flags) { > > - if (flags & VIR_DOMAIN_DEVICE_MODIFY_CONFIG) { > > - qemuReportError(VIR_ERR_OPERATION_INVALID, > > - "%s", _("cannot modify the persistent configuration of a domain")); > > - return -1; > > - } > > - > > - return qemudDomainAttachDevice(dom, xml); > > +static int qemudDomainAttachDevice(virDomainPtr dom, const char *xml) > > +{ > > + return qemudDomainAttachDeviceFlags(dom, xml, > > + VIR_DOMAIN_DEVICE_MODIFY_LIVE); > > } > > > > > > @@ -4078,14 +4080,23 @@ cleanup: > > } > > > > > > -static int qemudDomainDetachDevice(virDomainPtr dom, > > - const char *xml) { > > +static int qemudDomainDetachDeviceFlags(virDomainPtr dom, const char *xml, > > + unsigned int flags) > > +{ > > struct qemud_driver *driver = dom->conn->privateData; > > virDomainObjPtr vm; > > virBitmapPtr qemuCaps = NULL; > > virDomainDeviceDefPtr dev = NULL; > > int ret = -1; > > > > + virCheckFlags(VIR_DOMAIN_DEVICE_MODIFY_LIVE| > > + VIR_DOMAIN_DEVICE_MODIFY_CONFIG, -1); > > + > > + if (flags & VIR_DOMAIN_DEVICE_MODIFY_CONFIG) { > > + qemuReportError(VIR_ERR_OPERATION_INVALID, > > + "%s", _("cannot modify the persistent configuration of a domain:")); > > + return -1; > > + } > > qemuDriverLock(driver); > > vm = virDomainFindByUUID(&driver->domains, dom->uuid); > > if (!vm) { > > @@ -4164,16 +4175,10 @@ cleanup: > > return ret; > > } > > > > -static int qemudDomainDetachDeviceFlags(virDomainPtr dom, > > - const char *xml, > > - unsigned int flags) { > > - if (flags & VIR_DOMAIN_DEVICE_MODIFY_CONFIG) { > > - qemuReportError(VIR_ERR_OPERATION_INVALID, > > - "%s", _("cannot modify the persistent configuration of a domain")); > > - return -1; > > - } > > - > > - return qemudDomainDetachDevice(dom, xml); > > +static int qemudDomainDetachDevice(virDomainPtr dom, const char *xml) > > +{ > > + return qemudDomainDetachDeviceFlags(dom, xml, > > + VIR_DOMAIN_DEVICE_MODIFY_LIVE); > > } > > > > static int qemudDomainGetAutostart(virDomainPtr dom, > > -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list