diff options
author | Nick Piggin <npiggin@suse.de> | 2006-03-22 03:07:59 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-22 10:53:56 -0500 |
commit | 8d438f96d2b8eade6cbcd8adfc22dae6f5cbd6c0 (patch) | |
tree | 5248caf52ed9ba1dbb172d9e3bd3216c97ab3b84 /mm/swap.c | |
parent | 46453a6e194a8c55fe6cf3dc8e1c4f24e2abc013 (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.c | 16 |
1 files changed, 8 insertions, 8 deletions
@@ -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); |