The patch titled task_struct cleanup: make binfmt module get and put per signal_struct has been removed from the -mm tree. Its filename was task_struct-cleanup-make-binfmt-module-get-and-put-per-signal_struct.patch This patch was dropped because an updated version will be merged The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/ ------------------------------------------------------ Subject: task_struct cleanup: make binfmt module get and put per signal_struct From: Hiroshi Shimamoto <h-shimamoto@xxxxxxxxxxxxx> The binfmt is a member of signal_struct, so it can be handled per signal_struct instead of task_struct. Signed-off-by: Hiroshi Shimamoto <h-shimamoto@xxxxxxxxxxxxx> Cc: Oleg Nesterov <oleg@xxxxxxxxxx> Cc: Roland McGrath <roland@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- kernel/exit.c | 2 -- kernel/fork.c | 12 ++++++------ 2 files changed, 6 insertions(+), 8 deletions(-) diff -puN kernel/exit.c~task_struct-cleanup-make-binfmt-module-get-and-put-per-signal_struct kernel/exit.c --- a/kernel/exit.c~task_struct-cleanup-make-binfmt-module-get-and-put-per-signal_struct +++ a/kernel/exit.c @@ -977,8 +977,6 @@ NORET_TYPE void do_exit(long code) disassociate_ctty(1); module_put(task_thread_info(tsk)->exec_domain->module); - if (tsk->signal->binfmt) - module_put(tsk->signal->binfmt->module); proc_exit_connector(tsk); diff -puN kernel/fork.c~task_struct-cleanup-make-binfmt-module-get-and-put-per-signal_struct kernel/fork.c --- a/kernel/fork.c~task_struct-cleanup-make-binfmt-module-get-and-put-per-signal_struct +++ a/kernel/fork.c @@ -859,6 +859,10 @@ static int copy_signal(unsigned long clo sig->tty_old_pgrp = NULL; sig->tty = NULL; sig->binfmt = current->signal->binfmt; + if (sig->binfmt && !try_module_get(sig->binfmt->module)) { + kmem_cache_free(signal_cachep, sig); + return -EAGAIN; + } sig->utime = sig->stime = sig->cutime = sig->cstime = cputime_zero; sig->gtime = cputime_zero; @@ -888,6 +892,8 @@ void __cleanup_signal(struct signal_stru { thread_group_cputime_free(sig); tty_kref_put(sig->tty); + if (sig->binfmt) + module_put(sig->binfmt->module); kmem_cache_free(signal_cachep, sig); } @@ -1027,9 +1033,6 @@ static struct task_struct *copy_process( if (!try_module_get(task_thread_info(p)->exec_domain->module)) goto bad_fork_cleanup_count; - if (p->signal->binfmt && !try_module_get(p->signal->binfmt->module)) - goto bad_fork_cleanup_put_domain; - p->did_exec = 0; delayacct_tsk_init(p); /* Must remain after dup_task_struct() */ copy_flags(clone_flags, p); @@ -1316,9 +1319,6 @@ bad_fork_cleanup_cgroup: #endif cgroup_exit(p, cgroup_callbacks_done); delayacct_tsk_free(p); - if (p->signal->binfmt) - module_put(p->signal->binfmt->module); -bad_fork_cleanup_put_domain: module_put(task_thread_info(p)->exec_domain->module); bad_fork_cleanup_count: atomic_dec(&p->cred->user->processes); _ Patches currently in -mm which might be from h-shimamoto@xxxxxxxxxxxxx are task_struct-cleanup-make-binfmt-module-get-and-put-per-signal_struct.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html