[libvirt] [PATCH 3/4] lxc_container: Turn lxcAttachNS into calling virProcessSetNamespaces
Daniel P. Berrange
berrange at redhat.com
Thu Aug 27 10:11:03 UTC 2015
On Thu, Aug 27, 2015 at 03:06:53AM +0200, Michal Privoznik wrote:
> Now that virProcessSetNamespaces() does accept FD list in the
> correct format, we can simply turn lxcAttachNS into calling
> virProcessSetNamespaces().
>
> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
> ---
> src/lxc/lxc_container.c | 22 +++-------------------
> 1 file changed, 3 insertions(+), 19 deletions(-)
>
> diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c
> index feb8fad..eb7cad6 100644
> --- a/src/lxc/lxc_container.c
> +++ b/src/lxc/lxc_container.c
> @@ -2184,25 +2184,9 @@ static int lxcContainerDropCapabilities(virDomainDefPtr def ATTRIBUTE_UNUSED,
> */
> static int lxcAttachNS(int *ns_fd)
> {
> - size_t i;
> - if (ns_fd)
> - for (i = 0; i < VIR_LXC_DOMAIN_NAMESPACE_LAST; i++) {
> - if (ns_fd[i] < 0)
> - continue;
> - VIR_DEBUG("Setting into namespace\n");
> - /* We get EINVAL if new NS is same as the current
> - * NS, or if the fd namespace doesn't match the
> - * type passed to setns()'s second param. Since we
> - * pass 0, we know the EINVAL is harmless
> - */
> - if (setns(ns_fd[i], 0) < 0 &&
> - errno != EINVAL) {
> - virReportSystemError(errno, _("failed to set namespace '%s'"),
> - virLXCDomainNamespaceTypeToString(i));
> - return -1;
> - }
> - VIR_FORCE_CLOSE(ns_fd[i]);
> - }
> + if (ns_fd &&
> + virProcessSetNamespaces(VIR_LXC_DOMAIN_NAMESPACE_LAST, ns_fd) < 0)
> + return -1;
> return 0;
> }
ACK, or we could just inline this call and get rid fo the
lxcAttachNS method entirely
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