From: Michal Hocko <mhocko@xxxxxxxx> There is no existing user of the flag and the flag is dangerous because a nested allocation context can use GFP_NOFAIL which could cause unexpected failure. Such a code would be hard to maintain because it could be deeper in the call chain. PF_MEMALLOC_NORECLAIM has been added even when it was pointed out [1] that such a allocation contex is inherently unsafe if the context doesn't fully control all allocations called from this context. [1] https://lore.kernel.org/all/ZcM0xtlKbAOFjv5n@tiehlicka/ Signed-off-by: Michal Hocko <mhocko@xxxxxxxx> --- include/linux/sched.h | 1 - include/linux/sched/mm.h | 7 ++----- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/include/linux/sched.h b/include/linux/sched.h index f8d150343d42..72dad3a6317a 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -1657,7 +1657,6 @@ extern struct pid *cad_pid; * I am cleaning dirty pages from some other bdi. */ #define PF_KTHREAD 0x00200000 /* I am a kernel thread */ #define PF_RANDOMIZE 0x00400000 /* Randomize virtual address space */ -#define PF_MEMALLOC_NORECLAIM 0x00800000 /* All allocation requests will clear __GFP_DIRECT_RECLAIM */ #define PF_MEMALLOC_NOWARN 0x01000000 /* All allocation requests will inherit __GFP_NOWARN */ #define PF__HOLE__02000000 0x02000000 #define PF_NO_SETAFFINITY 0x04000000 /* Userland is not allowed to meddle with cpus_mask */ diff --git a/include/linux/sched/mm.h b/include/linux/sched/mm.h index 91546493c43d..c49f2b24acb9 100644 --- a/include/linux/sched/mm.h +++ b/include/linux/sched/mm.h @@ -260,16 +260,13 @@ static inline gfp_t current_gfp_context(gfp_t flags) if (unlikely(pflags & (PF_MEMALLOC_NOIO | PF_MEMALLOC_NOFS | - PF_MEMALLOC_NORECLAIM | PF_MEMALLOC_NOWARN | PF_MEMALLOC_PIN))) { /* * Stronger flags before weaker flags: - * NORECLAIM implies NOIO, which in turn implies NOFS + * NOIO implies NOFS */ - if (pflags & PF_MEMALLOC_NORECLAIM) - flags &= ~__GFP_DIRECT_RECLAIM; - else if (pflags & PF_MEMALLOC_NOIO) + if (pflags & PF_MEMALLOC_NOIO) flags &= ~(__GFP_IO | __GFP_FS); else if (pflags & PF_MEMALLOC_NOFS) flags &= ~__GFP_FS; -- 2.46.0