[libvirt] [PATCH] qemu: Unref domain on error of opening qemu monitor
Osier
jyang at redhat.com
Thu Oct 28 03:42:12 UTC 2010
于 2010年10月28日 11:06, Hu Tao 写道:
> The domain refed will be left unrefed when there is error when opening
> qemu monitor, so unref it.
> ---
> src/qemu/qemu_driver.c | 6 ++++--
> 1 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
> index 25695df..4bcfb27 100644
> --- a/src/qemu/qemu_driver.c
> +++ b/src/qemu/qemu_driver.c
> @@ -1385,7 +1385,7 @@ qemuConnectMonitor(struct qemud_driver *driver, virDomainObjPtr vm)
> (driver->securityDriver,vm)< 0) {
> VIR_ERROR(_("Failed to set security context for monitor for %s"),
> vm->def->name);
> - goto error;
> + return ret;
how could you unref the domain ref? it returns here.. :-)
it even will give up closing priv->mon.
> }
>
> /* Hold an extra reference because we can't allow 'vm' to be
> @@ -1420,8 +1420,10 @@ qemuConnectMonitor(struct qemud_driver *driver, virDomainObjPtr vm)
> qemuDomainObjExitMonitorWithDriver(driver, vm);
>
> error:
> - if (ret< 0)
> + if (ret< 0) {
> qemuMonitorClose(priv->mon);
> + virDomainObjUnref(vm);
> + }
>
> return ret;
> }
More information about the libvir-list
mailing list