summaryrefslogtreecommitdiff
path: root/mm/page_alloc.c
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@redhat.com>2020-11-30 14:56:55 +0300
committerArnaldo Carvalho de Melo <acme@redhat.com>2020-11-30 14:56:55 +0300
commit1f195e557d137be004894d2016357013331ec3d0 (patch)
treeac74e64b08349fc569e9db2edcf32c4bf84b0c9b /mm/page_alloc.c
parentfd4ebb457c9ca90d10a74aeb85d54e27b08d5e76 (diff)
parentb65054597872ce3aefbc6a666385eabdf9e288da (diff)
downloadlinux-1f195e557d137be004894d2016357013331ec3d0.tar.xz
Merge remote-tracking branch 'torvalds/master' into perf/core
To pick up fixes. Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'mm/page_alloc.c')
-rw-r--r--mm/page_alloc.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 23f5066bd4a5..eaa227a479e4 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -5103,6 +5103,11 @@ refill:
if (!page_ref_sub_and_test(page, nc->pagecnt_bias))
goto refill;
+ if (unlikely(nc->pfmemalloc)) {
+ free_the_page(page, compound_order(page));
+ goto refill;
+ }
+
#if (PAGE_SIZE < PAGE_FRAG_CACHE_MAX_SIZE)
/* if size can vary use size else just use PAGE_SIZE */
size = nc->size;