mm,oom: do not loop !__GFP_FS allocation if the OOM killer is disabled
After the OOM killer is disabled during suspend operation, any !__GFP_NOFAIL && __GFP_FS allocations are forced to fail. Thus, any !__GFP_NOFAIL && !__GFP_FS allocations should be forced to fail as well. Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> Signed-off-by: Johannes Weiner <hannes@cmpxchg.org> Acked-by: Michal Hocko <mhocko@suse.com> Acked-by: David Rientjes <rientjes@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
6afcf2895e
commit
0a687aace3
|
@ -2858,8 +2858,12 @@ __alloc_pages_may_oom(gfp_t gfp_mask, unsigned int order,
|
|||
* XXX: Page reclaim didn't yield anything,
|
||||
* and the OOM killer can't be invoked, but
|
||||
* keep looping as per tradition.
|
||||
*
|
||||
* But do not keep looping if oom_killer_disable()
|
||||
* was already called, for the system is trying to
|
||||
* enter a quiescent state during suspend.
|
||||
*/
|
||||
*did_some_progress = 1;
|
||||
*did_some_progress = !oom_killer_disabled;
|
||||
goto out;
|
||||
}
|
||||
if (pm_suspended_storage())
|
||||
|
|
Loading…
Reference in New Issue