From 43f21a1710962d955d39965aa49463da54a39ac7 Mon Sep 17 00:00:00 2001 From: Wu Fengguang Date: Wed, 22 Mar 2006 00:08:28 -0800 Subject: [PATCH] --- yaml --- r: 22466 b: refs/heads/master c: fb8d14e172a29ba5ac69a73b61196be86fdfc3e1 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/mm/vmscan.c | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 32166948270d..923b77d18369 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c9b02d970c385a253edb36c87643b0df706b50b4 +refs/heads/master: fb8d14e172a29ba5ac69a73b61196be86fdfc3e1 diff --git a/trunk/mm/vmscan.c b/trunk/mm/vmscan.c index 85e95f445022..486184d2b50c 100644 --- a/trunk/mm/vmscan.c +++ b/trunk/mm/vmscan.c @@ -1132,9 +1132,6 @@ static unsigned long shrink_inactive_list(unsigned long max_scan, zone->pages_scanned += nr_scan; spin_unlock_irq(&zone->lru_lock); - if (nr_taken == 0) - goto done; - nr_scanned += nr_scan; nr_freed = shrink_page_list(&page_list, sc); nr_reclaimed += nr_freed; @@ -1146,6 +1143,9 @@ static unsigned long shrink_inactive_list(unsigned long max_scan, __mod_page_state_zone(zone, pgscan_direct, nr_scan); __mod_page_state_zone(zone, pgsteal, nr_freed); + if (nr_taken == 0) + goto done; + spin_lock(&zone->lru_lock); /* * Put back any unfreeable pages. @@ -1166,8 +1166,9 @@ static unsigned long shrink_inactive_list(unsigned long max_scan, } } } while (nr_scanned < max_scan); - spin_unlock_irq(&zone->lru_lock); + spin_unlock(&zone->lru_lock); done: + local_irq_enable(); pagevec_release(&pvec); return nr_reclaimed; }