From 10ce9a04535a5f0813ce403576e3f66980d22d9d Mon Sep 17 00:00:00 2001 From: Christoph Lameter Date: Wed, 1 Feb 2006 03:05:26 -0800 Subject: [PATCH] --- yaml --- r: 19364 b: refs/heads/master c: 42c722d4cb4022e56ff200f3f5a58c0dfd7edac6 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/mm/vmscan.c | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 531a75b3e2f9..5a730d9d9e76 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 8928862398fef04a137e5673ac5fa9e797960c87 +refs/heads/master: 42c722d4cb4022e56ff200f3f5a58c0dfd7edac6 diff --git a/trunk/mm/vmscan.c b/trunk/mm/vmscan.c index 465bfa54dfd6..0ca6007d655b 100644 --- a/trunk/mm/vmscan.c +++ b/trunk/mm/vmscan.c @@ -1599,17 +1599,23 @@ int zone_reclaim(struct zone *zone, gfp_t gfp_mask, unsigned int order) struct task_struct *p = current; struct reclaim_state reclaim_state; struct scan_control sc; + cpumask_t mask; + int node_id; if (time_before(jiffies, zone->last_unsuccessful_zone_reclaim + ZONE_RECLAIM_INTERVAL)) return 0; if (!(gfp_mask & __GFP_WAIT) || - zone->zone_pgdat->node_id != numa_node_id() || zone->all_unreclaimable || atomic_read(&zone->reclaim_in_progress) > 0) return 0; + node_id = zone->zone_pgdat->node_id; + mask = node_to_cpumask(node_id); + if (!cpus_empty(mask) && node_id != numa_node_id()) + return 0; + sc.may_writepage = 0; sc.may_swap = 0; sc.nr_scanned = 0;