Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0a687aac authored by Tetsuo Handa's avatar Tetsuo Handa Committed by Linus Torvalds
Browse files

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: default avatarTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Signed-off-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
Acked-by: default avatarMichal Hocko <mhocko@suse.com>
Acked-by: default avatarDavid Rientjes <rientjes@google.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 6afcf289
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -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())