fork: Add kernel_clone_args flag to ignore signals

Since:

commit 10ab825bde ("change kernel threads to ignore signals instead of
blocking them")

kthreads have been ignoring signals by default, and the vhost layer has
never had a need to change that. This patch adds an option flag,
USER_WORKER_SIG_IGN, handled in copy_process() after copy_sighand()
and copy_signals() so vhost_tasks added in the next patches can continue
to ignore singals.

Signed-off-by: Christian Brauner <brauner@kernel.org>
Signed-off-by: Mike Christie <michael.christie@oracle.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Christian Brauner (Microsoft) <brauner@kernel.org>
This commit is contained in:
Mike Christie 2023-03-10 16:03:28 -06:00 committed by Christian Brauner (Microsoft)
parent 11f3f500ec
commit 094717586b
No known key found for this signature in database
GPG Key ID: 91C61BC06578DCA2
2 changed files with 4 additions and 0 deletions

View File

@ -29,6 +29,7 @@ struct kernel_clone_args {
u32 io_thread:1;
u32 user_worker:1;
u32 no_files:1;
u32 ignore_signals:1;
unsigned long stack;
unsigned long stack_size;
unsigned long tls;

View File

@ -2290,6 +2290,9 @@ static __latent_entropy struct task_struct *copy_process(
if (retval)
goto bad_fork_cleanup_io;
if (args->ignore_signals)
ignore_signals(p);
stackleak_task_init(p);
if (pid != &init_struct_pid) {