diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/sched.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/include/linux/sched.h b/include/linux/sched.h index e4112aad2964..c2182b53dace 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
| @@ -51,6 +51,7 @@ struct sched_param { | |||
| 51 | #include <linux/cred.h> | 51 | #include <linux/cred.h> |
| 52 | #include <linux/llist.h> | 52 | #include <linux/llist.h> |
| 53 | #include <linux/uidgid.h> | 53 | #include <linux/uidgid.h> |
| 54 | #include <linux/gfp.h> | ||
| 54 | 55 | ||
| 55 | #include <asm/processor.h> | 56 | #include <asm/processor.h> |
| 56 | 57 | ||
| @@ -1791,6 +1792,7 @@ extern void thread_group_cputime_adjusted(struct task_struct *p, cputime_t *ut, | |||
| 1791 | #define PF_FROZEN 0x00010000 /* frozen for system suspend */ | 1792 | #define PF_FROZEN 0x00010000 /* frozen for system suspend */ |
| 1792 | #define PF_FSTRANS 0x00020000 /* inside a filesystem transaction */ | 1793 | #define PF_FSTRANS 0x00020000 /* inside a filesystem transaction */ |
| 1793 | #define PF_KSWAPD 0x00040000 /* I am kswapd */ | 1794 | #define PF_KSWAPD 0x00040000 /* I am kswapd */ |
| 1795 | #define PF_MEMALLOC_NOIO 0x00080000 /* Allocating memory without IO involved */ | ||
| 1794 | #define PF_LESS_THROTTLE 0x00100000 /* Throttle me less: I clean memory */ | 1796 | #define PF_LESS_THROTTLE 0x00100000 /* Throttle me less: I clean memory */ |
| 1795 | #define PF_KTHREAD 0x00200000 /* I am a kernel thread */ | 1797 | #define PF_KTHREAD 0x00200000 /* I am a kernel thread */ |
| 1796 | #define PF_RANDOMIZE 0x00400000 /* randomize virtual address space */ | 1798 | #define PF_RANDOMIZE 0x00400000 /* randomize virtual address space */ |
| @@ -1828,6 +1830,26 @@ extern void thread_group_cputime_adjusted(struct task_struct *p, cputime_t *ut, | |||
| 1828 | #define tsk_used_math(p) ((p)->flags & PF_USED_MATH) | 1830 | #define tsk_used_math(p) ((p)->flags & PF_USED_MATH) |
| 1829 | #define used_math() tsk_used_math(current) | 1831 | #define used_math() tsk_used_math(current) |
| 1830 | 1832 | ||
| 1833 | /* __GFP_IO isn't allowed if PF_MEMALLOC_NOIO is set in current->flags */ | ||
| 1834 | static inline gfp_t memalloc_noio_flags(gfp_t flags) | ||
| 1835 | { | ||
| 1836 | if (unlikely(current->flags & PF_MEMALLOC_NOIO)) | ||
| 1837 | flags &= ~__GFP_IO; | ||
| 1838 | return flags; | ||
| 1839 | } | ||
| 1840 | |||
| 1841 | static inline unsigned int memalloc_noio_save(void) | ||
| 1842 | { | ||
| 1843 | unsigned int flags = current->flags & PF_MEMALLOC_NOIO; | ||
| 1844 | current->flags |= PF_MEMALLOC_NOIO; | ||
| 1845 | return flags; | ||
| 1846 | } | ||
| 1847 | |||
| 1848 | static inline void memalloc_noio_restore(unsigned int flags) | ||
| 1849 | { | ||
| 1850 | current->flags = (current->flags & ~PF_MEMALLOC_NOIO) | flags; | ||
| 1851 | } | ||
| 1852 | |||
| 1831 | /* | 1853 | /* |
| 1832 | * task->jobctl flags | 1854 | * task->jobctl flags |
| 1833 | */ | 1855 | */ |
