kernel: treat PF_IO_WORKER like PF_KTHREAD for ptrace/signals
authorJens Axboe <axboe@kernel.dk>
Thu, 18 Feb 2021 14:01:11 +0000 (07:01 -0700)
committerJens Axboe <axboe@kernel.dk>
Mon, 22 Feb 2021 00:25:22 +0000 (17:25 -0700)
Signed-off-by: Jens Axboe <axboe@kernel.dk>
kernel/ptrace.c
kernel/signal.c

index 61db50f..821cf17 100644 (file)
@@ -375,7 +375,7 @@ static int ptrace_attach(struct task_struct *task, long request,
        audit_ptrace(task);
 
        retval = -EPERM;
-       if (unlikely(task->flags & PF_KTHREAD))
+       if (unlikely(task->flags & (PF_KTHREAD | PF_IO_WORKER)))
                goto out;
        if (same_thread_group(task, current))
                goto out;
index 5ad8566..ba4d1ef 100644 (file)
@@ -91,7 +91,7 @@ static bool sig_task_ignored(struct task_struct *t, int sig, bool force)
                return true;
 
        /* Only allow kernel generated signals to this kthread */
-       if (unlikely((t->flags & PF_KTHREAD) &&
+       if (unlikely((t->flags & (PF_KTHREAD | PF_IO_WORKER)) &&
                     (handler == SIG_KTHREAD_KERNEL) && !force))
                return true;
 
@@ -1096,7 +1096,7 @@ static int __send_signal(int sig, struct kernel_siginfo *info, struct task_struc
        /*
         * Skip useless siginfo allocation for SIGKILL and kernel threads.
         */
-       if ((sig == SIGKILL) || (t->flags & PF_KTHREAD))
+       if ((sig == SIGKILL) || (t->flags & (PF_KTHREAD | PF_IO_WORKER)))
                goto out_set;
 
        /*