[PATCH] mm: PageLRU no testset

PG_lru is protected by zone->lru_lock. It does not need TestSet/TestClear
operations.

Signed-off-by: Nick Piggin <npiggin@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
Nick Piggin
2006-03-22 00:07:59 -08:00
committed by Linus Torvalds
parent 46453a6e19
commit 8d438f96d2
3 changed files with 21 additions and 20 deletions
+8 -8
View File
@@ -214,8 +214,8 @@ void fastcall __page_cache_release(struct page *page)
struct zone *zone = page_zone(page);
spin_lock_irqsave(&zone->lru_lock, flags);
if (!TestClearPageLRU(page))
BUG();
BUG_ON(!PageLRU(page));
ClearPageLRU(page);
del_page_from_lru(zone, page);
spin_unlock_irqrestore(&zone->lru_lock, flags);
}
@@ -265,8 +265,8 @@ void release_pages(struct page **pages, int nr, int cold)
zone = pagezone;
spin_lock_irq(&zone->lru_lock);
}
if (!TestClearPageLRU(page))
BUG();
BUG_ON(!PageLRU(page));
ClearPageLRU(page);
del_page_from_lru(zone, page);
}
@@ -345,8 +345,8 @@ void __pagevec_lru_add(struct pagevec *pvec)
zone = pagezone;
spin_lock_irq(&zone->lru_lock);
}
if (TestSetPageLRU(page))
BUG();
BUG_ON(PageLRU(page));
SetPageLRU(page);
add_page_to_inactive_list(zone, page);
}
if (zone)
@@ -372,8 +372,8 @@ void __pagevec_lru_add_active(struct pagevec *pvec)
zone = pagezone;
spin_lock_irq(&zone->lru_lock);
}
if (TestSetPageLRU(page))
BUG();
BUG_ON(PageLRU(page));
SetPageLRU(page);
if (TestSetPageActive(page))
BUG();
add_page_to_active_list(zone, page);