[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