From a813510476f59441d0dce763a9d18d5b0ac40a17 Mon Sep 17 00:00:00 2001 From: Konstantin Khlebnikov Date: Tue, 24 May 2011 17:12:21 -0700 Subject: [PATCH] --- yaml --- r: 250908 b: refs/heads/master c: 0c917313a8d84fcc0c376db3f7edb7c06f06f920 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/mm/vmscan.c | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 714190f58283..0dfacf8f1681 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: bd486285f24ac2fd1ff64688fb0729712c5712c4 +refs/heads/master: 0c917313a8d84fcc0c376db3f7edb7c06f06f920 diff --git a/trunk/mm/vmscan.c b/trunk/mm/vmscan.c index d303b60f4c2a..890f54184d9a 100644 --- a/trunk/mm/vmscan.c +++ b/trunk/mm/vmscan.c @@ -1207,13 +1207,16 @@ int isolate_lru_page(struct page *page) { int ret = -EBUSY; + VM_BUG_ON(!page_count(page)); + if (PageLRU(page)) { struct zone *zone = page_zone(page); spin_lock_irq(&zone->lru_lock); - if (PageLRU(page) && get_page_unless_zero(page)) { + if (PageLRU(page)) { int lru = page_lru(page); ret = 0; + get_page(page); ClearPageLRU(page); del_page_from_lru_list(zone, page, lru);