On Wed, Jan 11, 2017 at 05:43:12PM +0100, Michal Privoznik wrote: > Other drivers (like qemu) would like to know if the namespaces > are available therefore it makes sense to move this function to > a shared module. > > At the same time, this function had some default namespaces that > are checked with every call. It is not necessary - let callers > pass just those namespaces they are interested in. > > With the move the function is renamed to > virProcessNamespaceAvailable. > > Signed-off-by: Michal Privoznik <mprivozn@xxxxxxxxxx> > --- > src/libvirt_private.syms | 1 + > src/lxc/lxc_container.c | 44 +---------------------------- > src/lxc/lxc_container.h | 2 -- > src/lxc/lxc_driver.c | 7 +++-- > src/util/virprocess.c | 72 ++++++++++++++++++++++++++++++++++++++++++++++++ > src/util/virprocess.h | 10 +++++++ > 6 files changed, 89 insertions(+), 47 deletions(-) > > diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms > index 9c74d35c4..d02d23b35 100644 > --- a/src/libvirt_private.syms > +++ b/src/libvirt_private.syms > @@ -2275,6 +2275,7 @@ virProcessGetPids; > virProcessGetStartTime; > virProcessKill; > virProcessKillPainfully; > +virProcessNamespaceAvailable; > virProcessRunInMountNamespace; > virProcessSchedPolicyTypeFromString; > virProcessSchedPolicyTypeToString; > diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c > index 32c0c3a4a..e5619b168 100644 > --- a/src/lxc/lxc_container.c > +++ b/src/lxc/lxc_container.c > @@ -27,7 +27,6 @@ > #include <config.h> > > #include <fcntl.h> > -#include <sched.h> > #include <limits.h> > #include <stdlib.h> > #include <stdio.h> > @@ -2265,7 +2264,7 @@ static int lxcContainerChild(void *data) > > static int userns_supported(void) > { > - return lxcContainerAvailable(LXC_CONTAINER_FEATURE_USER) == 0; > + return virProcessNamespaceAvailable(VIR_PROCESS_NAMESPACE_USER) == 0; > } > > static int userns_required(virDomainDefPtr def) > @@ -2399,47 +2398,6 @@ int lxcContainerStart(virDomainDefPtr def, > return pid; > } > > -ATTRIBUTE_NORETURN static int > -lxcContainerDummyChild(void *argv ATTRIBUTE_UNUSED) > -{ > - _exit(0); > -} > - > -int lxcContainerAvailable(int features) > -{ > - int flags = CLONE_NEWPID|CLONE_NEWNS|CLONE_NEWUTS| > - CLONE_NEWIPC|SIGCHLD; > - int cpid; > - char *childStack; > - char *stack; > - int stacksize = getpagesize() * 4; > - > - if (features & LXC_CONTAINER_FEATURE_USER) > - flags |= CLONE_NEWUSER; > - > - if (features & LXC_CONTAINER_FEATURE_NET) > - flags |= CLONE_NEWNET; These two constants need to be dropped from lxc_container.h now too. ACK if that's fixed. Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://entangle-photo.org -o- http://search.cpan.org/~danberr/ :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list