[libvirt] [PATCH] qemu: mark domain as updated after config updating happened

* src/qemu/qemu_driver.c (qemudDomainDetachDevice, qemudDomainAttachDevice, qemuDomainUpdateDeviceFlags) --- src/qemu/qemu_driver.c | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index f00d8a3..b55e189 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -8864,6 +8864,9 @@ static int qemudDomainAttachDevice(virDomainPtr dom, goto endjob; } + if (ret == 0 && !vm->updated) + vm->updated = 1; + if (!ret && virDomainSaveStatus(driver->caps, driver->stateDir, vm) < 0) ret = -1; @@ -9074,6 +9077,9 @@ static int qemuDomainUpdateDeviceFlags(virDomainPtr dom, break; } + if (ret == 0 && !vm->updated) + vm->updated = 1; + if (!ret && virDomainSaveStatus(driver->caps, driver->stateDir, vm) < 0) ret = -1; @@ -9748,6 +9754,9 @@ static int qemudDomainDetachDevice(virDomainPtr dom, "%s", _("This type of device cannot be hot unplugged")); } + if (ret == 0 && !vm->updated) + vm->updated = 1; + if (!ret && virDomainSaveStatus(driver->caps, driver->stateDir, vm) < 0) ret = -1; -- 1.7.3.2

On 11/24/2010 05:51 AM, Osier Yang wrote:
* src/qemu/qemu_driver.c (qemudDomainDetachDevice, qemudDomainAttachDevice, qemuDomainUpdateDeviceFlags) --- src/qemu/qemu_driver.c | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index f00d8a3..b55e189 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -8864,6 +8864,9 @@ static int qemudDomainAttachDevice(virDomainPtr dom, goto endjob; }
+ if (ret == 0 && !vm->updated) + vm->updated = 1; +
This could be simplified to: if (ret == 0) vm->updated = 1; (no harm in re-setting it to 1 if it is already 1, and it can only be 0 or 1). Are you also missing an update when vcpus are modified? I'm wondering if it would be better to make virDomainSaveStatus auto-set the updated field, rather than making every call have to independently do it. -- Eric Blake eblake@redhat.com +1-801-349-2682 Libvirt virtualization library http://libvirt.org

于 2010年11月25日 02:44, Eric Blake 写道:
On 11/24/2010 05:51 AM, Osier Yang wrote:
* src/qemu/qemu_driver.c (qemudDomainDetachDevice, qemudDomainAttachDevice, qemuDomainUpdateDeviceFlags) --- src/qemu/qemu_driver.c | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index f00d8a3..b55e189 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -8864,6 +8864,9 @@ static int qemudDomainAttachDevice(virDomainPtr dom, goto endjob; }
+ if (ret == 0&& !vm->updated) + vm->updated = 1; +
This could be simplified to:
if (ret == 0) vm->updated = 1;
(no harm in re-setting it to 1 if it is already 1, and it can only be 0 or 1).
yeah, make sense.
Are you also missing an update when vcpus are modified? I'm wondering if it would be better to make virDomainSaveStatus auto-set the updated field, rather than making every call have to independently do it.
yeah, for vcpu hotplug, I think so, other vcpu updates are for persistent change, no need to mark it as "updated". It's better if we could make virDomainSaveStatus auto-set it, but qemudDomainHotplugVcpus doesn't invoke virDomainSaveStatus. Regards - Osier
participants (2)
-
Eric Blake
-
Osier Yang