From 234a48aef878621db1e06c63e0796058fb096812 Mon Sep 17 00:00:00 2001 From: David Rientjes Date: Sun, 6 May 2007 14:50:00 -0700 Subject: [PATCH] --- yaml --- r: 54227 b: refs/heads/master c: 2b45ab3398a0ba119b1f672c7c56fd5a431b7f0a h: refs/heads/master i: 54225: c279a6994acf83dbe1de1f2cfc31965180cf39dc 54223: e1334e091bfc027c916927ed3908f05eac0e1941 v: v3 --- [refs] | 2 +- trunk/mm/oom_kill.c | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index f69c28ca085e..e8d7c8ebb2c7 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 2b744c01a54fe0c9974ff1b29522f25f07084053 +refs/heads/master: 2b45ab3398a0ba119b1f672c7c56fd5a431b7f0a diff --git a/trunk/mm/oom_kill.c b/trunk/mm/oom_kill.c index 038d2234f139..a7001410ab15 100644 --- a/trunk/mm/oom_kill.c +++ b/trunk/mm/oom_kill.c @@ -399,6 +399,7 @@ void out_of_memory(struct zonelist *zonelist, gfp_t gfp_mask, int order) struct task_struct *p; unsigned long points = 0; unsigned long freed = 0; + int constraint; blocking_notifier_call_chain(&oom_notify_list, 0, &freed); if (freed > 0) @@ -416,14 +417,15 @@ void out_of_memory(struct zonelist *zonelist, gfp_t gfp_mask, int order) if (sysctl_panic_on_oom == 2) panic("out of memory. Compulsory panic_on_oom is selected.\n"); - cpuset_lock(); - read_lock(&tasklist_lock); - /* * Check if there were limitations on the allocation (only relevant for * NUMA) that may require different handling. */ - switch (constrained_alloc(zonelist, gfp_mask)) { + constraint = constrained_alloc(zonelist, gfp_mask); + cpuset_lock(); + read_lock(&tasklist_lock); + + switch (constraint) { case CONSTRAINT_MEMORY_POLICY: oom_kill_process(current, points, "No available memory (MPOL_BIND)");