pidfd: kill the no longer needed do_notify_pidfd() in de_thread()
authorOleg Nesterov <oleg@redhat.com>
Fri, 2 Feb 2024 13:12:48 +0000 (14:12 +0100)
committerChristian Brauner <brauner@kernel.org>
Fri, 2 Feb 2024 13:57:53 +0000 (14:57 +0100)
Now that __change_pid() does wake_up_all(&pid->wait_pidfd) we can kill
do_notify_pidfd(leader) in de_thread(), it calls release_task(leader)
right after that and this implies detach_pid(leader, PIDTYPE_PID).

Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Link: https://lore.kernel.org/r/20240202131248.GA26022@redhat.com
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/exec.c

index b68f61bbcaa82e9adcb6ae7b2096ce1c9cf1ce3a..ca0d53edac99a953918530d9fa01a818ccb6b35e 100644 (file)
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -1143,11 +1143,6 @@ static int de_thread(struct task_struct *tsk)
 
                BUG_ON(leader->exit_state != EXIT_ZOMBIE);
                leader->exit_state = EXIT_DEAD;
-               /*
-                * leader and tsk exhanged their pids, the old pid dies,
-                * wake up the PIDFD_THREAD waiters.
-                */
-               do_notify_pidfd(leader);
                /*
                 * We are going to release_task()->ptrace_unlink() silently,
                 * the tracer can sleep in do_wait(). EXIT_DEAD guarantees