[libvirt] [PATCH 3/4] parallels: don't add domain to the list twice
Daniel P. Berrange
berrange at redhat.com
Wed May 7 13:55:09 UTC 2014
On Wed, Apr 23, 2014 at 06:35:02PM +0400, Dmitry Guryanov wrote:
> There is a problem with function parallelsDomainDefineXML. If we
> are defining a new domain, then we need to do 2 things: aclually
> create a VM in PCS and add new domain to the cached list of domains
> _parallelsConn.domains.
>
> This is done in the function parallelsLoadDomains. So call to
> virDomainObjListAdd will return a error, because a domain
> with the same name and id will already be in the list.
>
> Signed-off-by: Dmitry Guryanov <dguryanov at parallels.com>
> ---
> src/parallels/parallels_driver.c | 18 +++---------------
> 1 file changed, 3 insertions(+), 15 deletions(-)
>
> diff --git a/src/parallels/parallels_driver.c b/src/parallels/parallels_driver.c
> index 1c58b45..4ab3e1c 100644
> --- a/src/parallels/parallels_driver.c
> +++ b/src/parallels/parallels_driver.c
> @@ -2303,7 +2303,7 @@ parallelsDomainDefineXML(virConnectPtr conn, const char *xml)
> parallelsConnPtr privconn = conn->privateData;
> virDomainPtr ret = NULL;
> virDomainDefPtr def;
> - virDomainObjPtr dom = NULL, olddom = NULL;
> + virDomainObjPtr olddom = NULL;
>
> parallelsDriverLock(privconn);
> if ((def = virDomainDefParseString(xml, privconn->caps, privconn->xmlopt,
> @@ -2345,24 +2345,12 @@ parallelsDomainDefineXML(virConnectPtr conn, const char *xml)
> }
> virObjectUnlock(olddom);
>
> - if (!(dom = virDomainObjListAdd(privconn->domains, def,
> - privconn->xmlopt,
> - 0, NULL))) {
> - virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> - _("Can't allocate domobj"));
> - goto cleanup;
> - }
> -
> - def = NULL;
> -
> - ret = virGetDomain(conn, dom->def->name, dom->def->uuid);
> + ret = virGetDomain(conn, def->name, def->uuid);
> if (ret)
> - ret->id = dom->def->id;
> + ret->id = def->id;
>
> cleanup:
> virDomainDefFree(def);
> - if (dom)
> - virObjectUnlock(dom);
> parallelsDriverUnlock(privconn);
> return ret;
> }
ACK
Regards,
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
More information about the libvir-list
mailing list