lkml.org 
[lkml]   [2023]   [Aug]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 1/5] exit: abtract out should_wake helper for child_wait_callback()
    Date
    Abstract out the helper that decides if we should wake up following
    a wake_up() callback on our internal waitqueue.

    No functional changes intended in this patch.

    Acked-by: Christian Brauner <brauner@kernel.org>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    ---
    kernel/exit.c | 20 ++++++++++++++------
    1 file changed, 14 insertions(+), 6 deletions(-)

    diff --git a/kernel/exit.c b/kernel/exit.c
    index edb50b4c9972..2809dad69492 100644
    --- a/kernel/exit.c
    +++ b/kernel/exit.c
    @@ -1520,6 +1520,17 @@ static int ptrace_do_wait(struct wait_opts *wo, struct task_struct *tsk)
    return 0;
    }

    +static bool pid_child_should_wake(struct wait_opts *wo, struct task_struct *p)
    +{
    + if (!eligible_pid(wo, p))
    + return false;
    +
    + if ((wo->wo_flags & __WNOTHREAD) && wo->child_wait.private != p->parent)
    + return false;
    +
    + return true;
    +}
    +
    static int child_wait_callback(wait_queue_entry_t *wait, unsigned mode,
    int sync, void *key)
    {
    @@ -1527,13 +1538,10 @@ static int child_wait_callback(wait_queue_entry_t *wait, unsigned mode,
    child_wait);
    struct task_struct *p = key;

    - if (!eligible_pid(wo, p))
    - return 0;
    + if (pid_child_should_wake(wo, p))
    + return default_wake_function(wait, mode, sync, key);

    - if ((wo->wo_flags & __WNOTHREAD) && wait->private != p->parent)
    - return 0;
    -
    - return default_wake_function(wait, mode, sync, key);
    + return 0;
    }

    void __wake_up_parent(struct task_struct *p, struct task_struct *parent)
    --
    2.40.1
    \
     
     \ /
      Last update: 2023-08-03 01:15    [W:2.722 / U:1.120 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site