// SPDX-License-Identifier: GPL-2.0 /* Copyright (c) 2026 Christian Brauner */ #ifndef _LINUX_SCHED_EXEC_STATE_H #define _LINUX_SCHED_EXEC_STATE_H #include #include #include #include #include struct task_exec_state { refcount_t count; enum task_dumpable dumpable; struct user_namespace *user_ns; struct rcu_head rcu; }; extern struct task_exec_state init_task_exec_state; struct task_exec_state *alloc_task_exec_state(struct user_namespace *user_ns); void put_task_exec_state(struct task_exec_state *exec_state); struct task_exec_state *task_exec_state_rcu(const struct task_struct *tsk); struct task_exec_state *task_exec_state_replace(struct task_struct *tsk, struct task_exec_state *exec_state); int task_exec_state_copy(struct task_struct *tsk); void __init exec_state_init(void); DEFINE_FREE(put_task_exec_state, struct task_exec_state *, put_task_exec_state(_T)) #endif /* _LINUX_SCHED_EXEC_STATE_H */