[libvirt] [PATCH v2 1/2] vbox: change how vbox API is initialized.
John Ferlan
jferlan at redhat.com
Wed Nov 23 13:55:03 UTC 2016
[...]
> +
> +static vboxDriverPtr
> +vboxGetDriverConnection(void)
> +{
> + virMutexLock(&vbox_driver_lock);
> +
> + if (vbox_driver) {
> + virObjectRef(vbox_driver);
> + } else {
> + vbox_driver = vboxDriverObjNew();
> +
> + if (!vbox_driver) {
> + virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> + _("Failed to create vbox driver object."));
> + return NULL;
> + }
> + }
> +
> + if (vboxSdkInitialize() < 0 || vboxExtractVersion() < 0) {
In this path should vboxSdkUninitialize be called (since it wouldn't be
called in the destroy path)?
I can make the adjustment before push, but figured I'd ask.
The only caveat/question being if gVBoxAPI.UPFN.Initialize(vbox_driver)
failed, then does calling gVBoxAPI.UPFN.Uninitialize(vbox_driver) have
any negative effect?
Beyond that - both patches seem fine.... Given recent discussion about
removing an older Xen driver from libvirt:
http://www.redhat.com/archives/libvir-list/2016-November/msg00911.html
causes me to wonder is there "some version" in history that perhaps can
be removed from/for vbox support? Perhaps cutting down on the number of
various variant compilation options based on some VBOX_API_VERSION?
ACK to both (I can push once you let me know about the Uninitialize call).
John
> + virObjectUnref(vbox_driver);
> + virMutexUnlock(&vbox_driver_lock);
> +
> + return NULL;
> + }
> +
> + vbox_driver->connectionCount++;
> +
> + virMutexUnlock(&vbox_driver_lock);
> +
> + return vbox_driver;
> +}
More information about the libvir-list
mailing list