From 692e9fac756013d9a0c32ad25763e7a831d65d44 Mon Sep 17 00:00:00 2001 From: Michal Privoznik Date: Thu, 27 Aug 2015 02:59:29 +0200 Subject: [PATCH] lxc_container: Turn lxcAttachNS into calling virProcessSetNamespaces Now that virProcessSetNamespaces() does accept FD list in the correct format, we can simply turn lxcAttachNS into calling virProcessSetNamespaces(). Signed-off-by: Michal Privoznik --- 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 125e1c8068..a33465c3f1 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; }