diff --git a/include/linux/sched/task.h b/include/linux/sched/task.h index 44c6f15800ff554ebc36994106e482bb62e2bb4b..d744b385108e8ca53678c4d8bad1b1a581c51008 100644 --- a/include/linux/sched/task.h +++ b/include/linux/sched/task.h @@ -98,6 +98,12 @@ static inline void put_task_struct(struct task_struct *t) __put_task_struct(t); } +static inline void put_task_struct_many(struct task_struct *t, int nr) +{ + if (atomic_sub_and_test(nr, &t->usage)) + __put_task_struct(t); +} + struct task_struct *task_rcu_dereference(struct task_struct **ptask); #ifdef CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT