mm/slub: remove duplicate flag in allocate_slab()
authorJiyoup Kim <lakroforce@gmail.com>
Sat, 9 Apr 2022 15:05:37 +0000 (00:05 +0900)
committerVlastimil Babka <vbabka@suse.cz>
Wed, 13 Apr 2022 07:05:31 +0000 (09:05 +0200)
In allocate_slab(), __GFP_NOFAIL flag is removed twice when trying
higher-order allocation. Remove it.

Signed-off-by: Jiyoup Kim <lakroforce@gmail.com>
Reviewed-by: Hyeonggon Yoo <42.hyeyoo@gmail.com>
Reviewed-by: Muchun Song <songmuchun@bytedance.com>
Acked-by: David Rientjes <rientjes@google.com>
Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
Link: https://lore.kernel.org/r/20220409150538.1264-1-lakroforce@gmail.com
mm/slub.c

index a34e40edc980f3ee0f1e02a6c960edd396560502..3f775e77aae7b0415033259f6d37a609c7b9aa63 100644 (file)
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -1939,7 +1939,7 @@ static struct slab *allocate_slab(struct kmem_cache *s, gfp_t flags, int node)
         */
        alloc_gfp = (flags | __GFP_NOWARN | __GFP_NORETRY) & ~__GFP_NOFAIL;
        if ((alloc_gfp & __GFP_DIRECT_RECLAIM) && oo_order(oo) > oo_order(s->min))
-               alloc_gfp = (alloc_gfp | __GFP_NOMEMALLOC) & ~(__GFP_RECLAIM|__GFP_NOFAIL);
+               alloc_gfp = (alloc_gfp | __GFP_NOMEMALLOC) & ~__GFP_RECLAIM;
 
        slab = alloc_slab_page(alloc_gfp, node, oo);
        if (unlikely(!slab)) {