move daemonized kernel threads into the swapper's session
authorOleg Nesterov <oleg@tv-sign.ru>
Fri, 8 Feb 2008 12:19:10 +0000 (04:19 -0800)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Fri, 8 Feb 2008 17:22:27 +0000 (09:22 -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 96716fd22373936d4e87dd40d3fd3ad5d0c679e4..d7815f5708827c2ce6651cb31400de3cf22dfa95 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 */