aboutsummaryrefslogtreecommitdiffstats
path: root/mm/swap.c
diff options
context:
space:
mode:
authorNick Piggin <npiggin@suse.de>2006-03-22 03:07:59 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2006-03-22 10:53:56 -0500
commit8d438f96d2b8eade6cbcd8adfc22dae6f5cbd6c0 (patch)
tree5248caf52ed9ba1dbb172d9e3bd3216c97ab3b84 /mm/swap.c
parent46453a6e194a8c55fe6cf3dc8e1c4f24e2abc013 (diff)
[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>
Diffstat (limited to 'mm/swap.c')
-rw-r--r--mm/swap.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/mm/swap.c b/mm/swap.c
index 3045a0f4c451..985324ee9368 100644
--- a/mm/swap.c
+++ b/mm/swap.c
@@ -214,8 +214,8 @@ void fastcall __page_cache_release(struct page *page)
214 struct zone *zone = page_zone(page); 214 struct zone *zone = page_zone(page);
215 215
216 spin_lock_irqsave(&zone->lru_lock, flags); 216 spin_lock_irqsave(&zone->lru_lock, flags);
217 if (!TestClearPageLRU(page)) 217 BUG_ON(!PageLRU(page));
218 BUG(); 218 ClearPageLRU(page);
219 del_page_from_lru(zone, page); 219 del_page_from_lru(zone, page);
220 spin_unlock_irqrestore(&zone->lru_lock, flags); 220 spin_unlock_irqrestore(&zone->lru_lock, flags);
221 } 221 }
@@ -265,8 +265,8 @@ void release_pages(struct page **pages, int nr, int cold)
265 zone = pagezone; 265 zone = pagezone;
266 spin_lock_irq(&zone->lru_lock); 266 spin_lock_irq(&zone->lru_lock);
267 } 267 }
268 if (!TestClearPageLRU(page)) 268 BUG_ON(!PageLRU(page));
269 BUG(); 269 ClearPageLRU(page);
270 del_page_from_lru(zone, page); 270 del_page_from_lru(zone, page);
271 } 271 }
272 272
@@ -345,8 +345,8 @@ void __pagevec_lru_add(struct pagevec *pvec)
345 zone = pagezone; 345 zone = pagezone;
346 spin_lock_irq(&zone->lru_lock); 346 spin_lock_irq(&zone->lru_lock);
347 } 347 }
348 if (TestSetPageLRU(page)) 348 BUG_ON(PageLRU(page));
349 BUG(); 349 SetPageLRU(page);
350 add_page_to_inactive_list(zone, page); 350 add_page_to_inactive_list(zone, page);
351 } 351 }
352 if (zone) 352 if (zone)
@@ -372,8 +372,8 @@ void __pagevec_lru_add_active(struct pagevec *pvec)
372 zone = pagezone; 372 zone = pagezone;
373 spin_lock_irq(&zone->lru_lock); 373 spin_lock_irq(&zone->lru_lock);
374 } 374 }
375 if (TestSetPageLRU(page)) 375 BUG_ON(PageLRU(page));
376 BUG(); 376 SetPageLRU(page);
377 if (TestSetPageActive(page)) 377 if (TestSetPageActive(page))
378 BUG(); 378 BUG();
379 add_page_to_active_list(zone, page); 379 add_page_to_active_list(zone, page);