aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorOleg Nesterov <oleg@tv-sign.ru>2008-07-25 04:47:37 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2008-07-25 13:53:39 -0400
commit7b34e4283c685f5cc6ba6d30e939906eee0d4bcf (patch)
tree6822edd5c63db79e97b8c5379a18a058bc5405ff /kernel
parent3d749b9e676b26584a47e75c235aa6f69d0697ae (diff)
introduce PF_KTHREAD flag
Introduce the new PF_KTHREAD flag to mark the kernel threads. It is set by INIT_TASK() and copied to the forked childs (we could set it in kthreadd() along with PF_NOFREEZE instead). daemonize() was changed as well. In that case testing of PF_KTHREAD is racy, but daemonize() is hopeless anyway. This flag is cleared in do_execve(), before search_binary_handler(). Probably not the best place, we can do this in exec_mmap() or in start_thread(), or clear it along with PF_FORKNOEXEC. But I think this doesn't matter in practice, and if do_execve() fails kthread should die soon. Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru> Cc: Roland McGrath <roland@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/exit.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/exit.c b/kernel/exit.c
index a7799d8a6404..28a44a2612dc 100644
--- a/kernel/exit.c
+++ b/kernel/exit.c
@@ -430,7 +430,7 @@ void daemonize(const char *name, ...)
430 * We don't want to have TIF_FREEZE set if the system-wide hibernation 430 * We don't want to have TIF_FREEZE set if the system-wide hibernation
431 * or suspend transition begins right now. 431 * or suspend transition begins right now.
432 */ 432 */
433 current->flags |= PF_NOFREEZE; 433 current->flags |= (PF_NOFREEZE | PF_KTHREAD);
434 434
435 if (current->nsproxy != &init_nsproxy) { 435 if (current->nsproxy != &init_nsproxy) {
436 get_nsproxy(&init_nsproxy); 436 get_nsproxy(&init_nsproxy);