You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
[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:
committed by
Linus Torvalds
parent
46453a6e19
commit
8d438f96d2
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user