
On Fri, May 03, 2013 at 04:12:29PM -0600, Jim Fehlig wrote:
Daniel P. Berrange wrote:
diff --git a/src/xen/xen_driver.c b/src/xen/xen_driver.c index 2ecb86f..b7f1ad4 100644 --- a/src/xen/xen_driver.c +++ b/src/xen/xen_driver.c @@ -86,14 +86,9 @@ static struct xenUnifiedDriver const * const drivers[XEN_UNIFIED_NR_DRIVERS] = { [XEN_UNIFIED_XEND_OFFSET] = &xenDaemonDriver, [XEN_UNIFIED_XS_OFFSET] = &xenStoreDriver, [XEN_UNIFIED_XM_OFFSET] = &xenXMDriver, -#if WITH_XEN_INOTIFY - [XEN_UNIFIED_INOTIFY_OFFSET] = &xenInotifyDriver, -#endif
Looks like this was never used, so just removing it right? But there are a lot of loops in this file with 'drivers[i]->', where it might be possible that i == XEN_UNIFIED_INOTIFY_OFFSET?
The xenInotifyDriver table had one callback in it - the 'close' method. Since we directly call xenInotifyClose, we don't need this in the driver table anymore.
static int -xenUnifiedStateInitialize(bool privileged ATTRIBUTE_UNUSED, +xenUnifiedStateInitialize(bool privileged, virStateInhibitCallback callback ATTRIBUTE_UNUSED, void *opaque ATTRIBUTE_UNUSED) { - inside_daemon = true; + /* Don't allow driver to work in non-root libvirtd */ + if (privileged) + inside_daemon = true;
Seems the name 'inside_daemon' is no longer appropriate. Should it be something like 'is_privileged'?
Yep, ok.
+ VIR_DEBUG("Trying XS sub-driver"); + if (xenStoreOpen(conn, auth, flags) < 0) + goto error; + VIR_DEBUG("Activated XS sub-driver"); + priv->opened[XEN_UNIFIED_XS_OFFSET] = 1;
xenNumaInit(conn);
if (!(priv->caps = xenHypervisorMakeCapabilities(conn))) { - VIR_DEBUG("Failed to make capabilities"); - goto fail; + VIR_DEBUG("Errored to make capabilities");
Maybe one too many instances of 'fail' replaced with 'error'? I think "Failed to make capabilities" is better than "Errored to make capabilities" :).
Hah, yes, search + replace gone too far.
+ goto error; }
if (!(priv->xmlopt = xenDomainXMLConfInit())) - goto fail; + goto error;
#if WITH_XEN_INOTIFY - if (xenHavePrivilege()) { - VIR_DEBUG("Trying Xen inotify sub-driver"); - if (xenInotifyOpen(conn, auth, flags) == VIR_DRV_OPEN_SUCCESS) { - VIR_DEBUG("Activated Xen inotify sub-driver"); - priv->opened[XEN_UNIFIED_INOTIFY_OFFSET] = 1; - } - } + VIR_DEBUG("Trying Xen inotify sub-driver"); + if (xenInotifyOpen(conn, auth, flags) < 0) + goto error;
The old code silently continued on if xenInotifyOpen() didn't return success.
I've audited the xenInotifyOpen method and the only reasons it would return -1 are all genuine fatal errors which we should having been honouring. 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 :|