 +	return 0;
 +}
 +
-+/*
+ /*
   * This function expects the tasklist_lock write-locked.
   */
- static void __exit_signal(struct task_struct *tsk)
-@@ -1049,6 +1065,9 @@ static int wait_task_zombie(struct wait_opts *wo, struct task_struct *p)
+@@ -987,6 +1003,9 @@ static int wait_task_zombie(struct wait_opts *wo, struct task_struct *p)
  	uid_t uid = from_kuid_munged(current_user_ns(), task_uid(p));
  	struct waitid_info *infop;
  

 	why = ptrace ? CLD_TRAPPED : CLD_STOPPED;
 	read_unlock(&tasklist_lock);
 	sched_annotate_sleep();
@@ -1297,6 +1318,8 @@ static int wait_task_continued(struct wait_opts *wo, struct task_struct *p)
 	spin_unlock_irq(&p->sighand->siglock);
 
 	pid = task_pid_vnr(p);

+	} else {
+		ns = get_proc_ns(file_inode(file));
+	}
 	if (proc_ns_file(file)) {
 		ns = get_proc_ns(file_inode(file));
 		if (flags && (ns->ops->type != flags))
@@ -553,7 +626,10 @@ SYSCALL_DEFINE2(setns, int, fd, int, flags)
 	if (err)
 		goto out;
 
-	err = prepare_nsset(flags, &nsset);
+	if (alt_install)
+		err = alt_install(new_nsproxy, ns);
+	else
+		err = prepare_nsset(flags, &nsset);
 	if (err)
 		goto out;
 
@@ -571,6 +647,7 @@ SYSCALL_DEFINE2(setns, int, fd, int, flags)
 	return err;
 }
 
+
 int __init nsproxy_cache_init(void)
 {
 	nsproxy_cachep = KMEM_CACHE(nsproxy, SLAB_PANIC);
-- 
2.19.1

