|
@@ -1307,13 +1307,12 @@ struct task_struct {
|
|
|
* execve */
|
|
|
unsigned in_iowait:1;
|
|
|
|
|
|
- /* task may not gain privileges */
|
|
|
- unsigned no_new_privs:1;
|
|
|
-
|
|
|
/* Revert to default priority/policy when forking */
|
|
|
unsigned sched_reset_on_fork:1;
|
|
|
unsigned sched_contributes_to_load:1;
|
|
|
|
|
|
+ unsigned long atomic_flags; /* Flags needing atomic access. */
|
|
|
+
|
|
|
pid_t pid;
|
|
|
pid_t tgid;
|
|
|
|
|
@@ -1967,6 +1966,19 @@ static inline void memalloc_noio_restore(unsigned int flags)
|
|
|
current->flags = (current->flags & ~PF_MEMALLOC_NOIO) | flags;
|
|
|
}
|
|
|
|
|
|
+/* Per-process atomic flags. */
|
|
|
+#define PFA_NO_NEW_PRIVS 0x00000001 /* May not gain new privileges. */
|
|
|
+
|
|
|
+static inline bool task_no_new_privs(struct task_struct *p)
|
|
|
+{
|
|
|
+ return test_bit(PFA_NO_NEW_PRIVS, &p->atomic_flags);
|
|
|
+}
|
|
|
+
|
|
|
+static inline void task_set_no_new_privs(struct task_struct *p)
|
|
|
+{
|
|
|
+ set_bit(PFA_NO_NEW_PRIVS, &p->atomic_flags);
|
|
|
+}
|
|
|
+
|
|
|
/*
|
|
|
* task->jobctl flags
|
|
|
*/
|