diff options
author | James Morris <james.l.morris@oracle.com> | 2016-11-14 09:34:01 +1100 |
---|---|---|
committer | James Morris <james.l.morris@oracle.com> | 2016-11-14 09:34:01 +1100 |
commit | 185c0f26c0267d5978b5c30d3a04f90cb245cd76 (patch) | |
tree | 4b1324c9445bbcff095fb3ce755ec46d315bda5a /mm/memcontrol.c | |
parent | eafb7b9d01a7001ff8e9624e7dcb706844f981b3 (diff) | |
parent | a25f0944ba9b1d8a6813fd6f1a86f1bd59ac25a6 (diff) |
Merge commit 'v4.9-rc5' into next
Diffstat (limited to 'mm/memcontrol.c')
-rw-r--r-- | mm/memcontrol.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/mm/memcontrol.c b/mm/memcontrol.c index ae052b5e3315..0f870ba43942 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -1917,6 +1917,15 @@ retry: current->flags & PF_EXITING)) goto force; + /* + * Prevent unbounded recursion when reclaim operations need to + * allocate memory. This might exceed the limits temporarily, + * but we prefer facilitating memory reclaim and getting back + * under the limit over triggering OOM kills in these cases. + */ + if (unlikely(current->flags & PF_MEMALLOC)) + goto force; + if (unlikely(task_in_memcg_oom(current))) goto nomem; |