[libvirt] [RESEND][PATCHv5 4/4] change lxc driver to use hostdev common library

Daniel P. Berrange berrange at redhat.com
Mon Oct 14 16:16:51 UTC 2013


On Fri, Sep 13, 2013 at 11:34:37AM +0800, Chunyan Liu wrote:
> Change lxc driver to use hostdev common library instead of its own APIs in
> lxc_hostdev.[ch]
> 
> Signed-off-by: Chunyan Liu <cyliu at suse.com>
> ---
>  po/POTFILES.in        |    1 -
>  src/Makefile.am       |    1 -
>  src/lxc/lxc_conf.h    |    4 -
>  src/lxc/lxc_driver.c  |   45 +++---
>  src/lxc/lxc_hostdev.c |  413 -------------------------------------------------
>  src/lxc/lxc_hostdev.h |   43 -----
>  src/lxc/lxc_process.c |   21 ++-
>  7 files changed, 43 insertions(+), 485 deletions(-)
>  delete mode 100644 src/lxc/lxc_hostdev.c
>  delete mode 100644 src/lxc/lxc_hostdev.h
> 
> diff --git a/po/POTFILES.in b/po/POTFILES.in
> index 2fc7e67..b3b7832 100644
> --- a/po/POTFILES.in
> +++ b/po/POTFILES.in
> @@ -61,7 +61,6 @@ src/locking/lock_manager.c
>  src/locking/sanlock_helper.c
>  src/lxc/lxc_cgroup.c
>  src/lxc/lxc_fuse.c
> -src/lxc/lxc_hostdev.c
>  src/lxc/lxc_container.c
>  src/lxc/lxc_conf.c
>  src/lxc/lxc_controller.c
> diff --git a/src/Makefile.am b/src/Makefile.am
> index c3a8ba0..afae0a8 100644
> --- a/src/Makefile.am
> +++ b/src/Makefile.am
> @@ -600,7 +600,6 @@ LXC_DRIVER_SOURCES =						\
>  		lxc/lxc_container.c lxc/lxc_container.h		\
>  		lxc/lxc_cgroup.c lxc/lxc_cgroup.h		\
>  		lxc/lxc_domain.c lxc/lxc_domain.h		\
> -		lxc/lxc_hostdev.c lxc/lxc_hostdev.h		\
>  		lxc/lxc_monitor.c lxc/lxc_monitor.h		\
>  		lxc/lxc_process.c lxc/lxc_process.h		\
>  		lxc/lxc_fuse.c lxc/lxc_fuse.h			\
> diff --git a/src/lxc/lxc_conf.h b/src/lxc/lxc_conf.h
> index a6208a2..05f2a80 100644
> --- a/src/lxc/lxc_conf.h
> +++ b/src/lxc/lxc_conf.h
> @@ -92,10 +92,6 @@ struct _virLXCDriver {
>      /* Immutable pointer, self-locking APIs */
>      virDomainObjListPtr domains;
>  
> -    /* Immutable pointer. Requires lock to be held before
> -     * calling APIs. */
> -    virUSBDeviceListPtr activeUsbHostdevs;
> -
>      /* Immutable pointer, self-locking APIs */
>      virDomainEventStatePtr domainEventState;
>  
> diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c
> index b587c22..098f2f0 100644
> --- a/src/lxc/lxc_driver.c
> +++ b/src/lxc/lxc_driver.c
> @@ -70,6 +70,7 @@
>  #include "virstring.h"
>  #include "viraccessapicheck.h"
>  #include "viraccessapichecklxc.h"
> +#include "virhostdev.h"
>  
>  #define VIR_FROM_THIS VIR_FROM_LXC
>  
> @@ -1418,9 +1419,6 @@ static int lxcStateInitialize(bool privileged,
>      if (!(lxc_driver->securityManager = lxcSecurityInit(cfg)))
>          goto cleanup;
>  
> -    if ((lxc_driver->activeUsbHostdevs = virUSBDeviceListNew()) == NULL)
> -        goto cleanup;
> -
>      if ((virLXCDriverGetCapabilities(lxc_driver, true)) == NULL)
>          goto cleanup;
>  
> @@ -1535,7 +1533,6 @@ static int lxcStateCleanup(void)
>  
>      virSysinfoDefFree(lxc_driver->hostsysinfo);
>  
> -    virObjectUnref(lxc_driver->activeUsbHostdevs);
>      virObjectUnref(lxc_driver->caps);
>      virObjectUnref(lxc_driver->securityManager);
>      virObjectUnref(lxc_driver->xmlopt);
> @@ -3214,6 +3211,7 @@ lxcDomainAttachDeviceHostdevSubsysUSBLive(virLXCDriverPtr driver,
>      mode_t mode;
>      bool created = false;
>      virUSBDevicePtr usb = NULL;
> +    virHostdevManagerPtr hostdev_mgr;
>  
>      if (virDomainHostdevFind(vm->def, def, NULL) >= 0) {
>          virReportError(VIR_ERR_OPERATION_FAILED, "%s",
> @@ -3221,6 +3219,13 @@ lxcDomainAttachDeviceHostdevSubsysUSBLive(virLXCDriverPtr driver,
>          return -1;
>      }
>  
> +    hostdev_mgr = virHostdevManagerGetDefault();

Check for NULL, and other places.


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