move daemonized kernel threads into the swapper's session
Oleg Nesterov [Fri, 8 Feb 2008 12:19:10 +0000 (04:19 -0800)]
Daemonized kernel threads run in the init's session. This doesn't match the
behaviour of kthread_create()'ed threads, and this is one of the 2 reasons
why we need a special hack in sys_setsid().

Now that set_special_pids() was changed to use struct pid, not pid_t, we can
use init_struct_pid and set 0,0 special pids.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Acked-by: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

kernel/exit.c

index 96716fd..d7815f5 100644 (file)
@@ -388,7 +388,7 @@ void daemonize(const char *name, ...)
                get_nsproxy(&init_nsproxy);
                switch_task_namespaces(current, &init_nsproxy);
        }
-       set_special_pids(find_pid(1));
+       set_special_pids(&init_struct_pid);
        proc_clear_tty(current);
 
        /* Block and flush all signals */