|
@@ -1455,14 +1455,15 @@ struct task_struct {
|
|
|
/* Used for emulating ABI behavior of previous Linux versions */
|
|
|
unsigned int personality;
|
|
|
|
|
|
- unsigned in_execve:1; /* Tell the LSMs that the process is doing an
|
|
|
- * execve */
|
|
|
- unsigned in_iowait:1;
|
|
|
-
|
|
|
- /* Revert to default priority/policy when forking */
|
|
|
+ /* scheduler bits, serialized by scheduler locks */
|
|
|
unsigned sched_reset_on_fork:1;
|
|
|
unsigned sched_contributes_to_load:1;
|
|
|
unsigned sched_migrated:1;
|
|
|
+ unsigned :0; /* force alignment to the next boundary */
|
|
|
+
|
|
|
+ /* unserialized, strictly 'current' */
|
|
|
+ unsigned in_execve:1; /* bit to tell LSMs we're in execve */
|
|
|
+ unsigned in_iowait:1;
|
|
|
#ifdef CONFIG_MEMCG
|
|
|
unsigned memcg_may_oom:1;
|
|
|
#endif
|
|
@@ -2002,7 +2003,8 @@ static inline int pid_alive(const struct task_struct *p)
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * is_global_init - check if a task structure is init
|
|
|
+ * is_global_init - check if a task structure is init. Since init
|
|
|
+ * is free to have sub-threads we need to check tgid.
|
|
|
* @tsk: Task structure to be checked.
|
|
|
*
|
|
|
* Check if a task structure is the first user space task the kernel created.
|
|
@@ -2011,7 +2013,7 @@ static inline int pid_alive(const struct task_struct *p)
|
|
|
*/
|
|
|
static inline int is_global_init(struct task_struct *tsk)
|
|
|
{
|
|
|
- return tsk->pid == 1;
|
|
|
+ return task_tgid_nr(tsk) == 1;
|
|
|
}
|
|
|
|
|
|
extern struct pid *cad_pid;
|