  #include <linux/mnt_namespace.h>
  #include <linux/utsname.h>
  #include <linux/pid_namespace.h>
-@@ -233,13 +234,30 @@ void exit_task_namespaces(struct task_struct *p)
- {
- 	switch_task_namespaces(p, NULL);
+@@ -528,18 +529,90 @@ static void commit_nsset(struct nsset *nsset)
+ 	switch_task_namespaces(me, nsset->nsproxy);
+ 	nsset->nsproxy = NULL;
  }
 +static int pidns_install_override(struct nsproxy *nsproxy,
 +				  struct ns_common *ns)

From 4fc60489b78fe94b05c145dbf733136c03bee0a0 Mon Sep 17 00:00:00 2001
From: Jason Wessel <jason.wessel@windriver.com>
Date: Thu, 11 Aug 2016 06:57:41 -0500
Subject: [PATCH 1/2] Add abililty for a child "ADMIN" name space to escape to
 the root name space

The following are the restritions in place for allowing a child name
space to access the root PID name space.

1) setns() must be called from use space with the CLONE_PARENT flag
2) The calling name space must be a 1st level child from the root name space
3) The calling name space must have the capability CAP_ADMIN_NS
4) The calling name space process cannot call wait_pid() with the
   child pid returned from fork(), if a wait is needed, it must be

 	if (!likely(wo->wo_flags & WEXITED))
 		return 0;
 
@@ -1185,6 +1204,8 @@ static int wait_task_stopped(struct wait_opts *wo,
 	 */
 	get_task_struct(p);
 	pid = task_pid_vnr(p);
