mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-21 16:29:59 +00:00
![Nick Piggin](/assets/img/avatar_default.png)
In the page release paths, we can be sure that nobody will mess with our page->flags because the refcount has dropped to 0. So no need for atomic operations here. Signed-off-by: Nick Piggin <npiggin@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
41 lines
783 B
C
41 lines
783 B
C
|
|
static inline void
|
|
add_page_to_active_list(struct zone *zone, struct page *page)
|
|
{
|
|
list_add(&page->lru, &zone->active_list);
|
|
zone->nr_active++;
|
|
}
|
|
|
|
static inline void
|
|
add_page_to_inactive_list(struct zone *zone, struct page *page)
|
|
{
|
|
list_add(&page->lru, &zone->inactive_list);
|
|
zone->nr_inactive++;
|
|
}
|
|
|
|
static inline void
|
|
del_page_from_active_list(struct zone *zone, struct page *page)
|
|
{
|
|
list_del(&page->lru);
|
|
zone->nr_active--;
|
|
}
|
|
|
|
static inline void
|
|
del_page_from_inactive_list(struct zone *zone, struct page *page)
|
|
{
|
|
list_del(&page->lru);
|
|
zone->nr_inactive--;
|
|
}
|
|
|
|
static inline void
|
|
del_page_from_lru(struct zone *zone, struct page *page)
|
|
{
|
|
list_del(&page->lru);
|
|
if (PageActive(page)) {
|
|
__ClearPageActive(page);
|
|
zone->nr_active--;
|
|
} else {
|
|
zone->nr_inactive--;
|
|
}
|
|
}
|
|
|