]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/blob - include/linux/mm_inline.h
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland...
[mirror_ubuntu-jammy-kernel.git] / include / linux / mm_inline.h
1
2 static inline void
3 add_page_to_active_list(struct zone *zone, struct page *page)
4 {
5 list_add(&page->lru, &zone->active_list);
6 zone->nr_active++;
7 }
8
9 static inline void
10 add_page_to_inactive_list(struct zone *zone, struct page *page)
11 {
12 list_add(&page->lru, &zone->inactive_list);
13 zone->nr_inactive++;
14 }
15
16 static inline void
17 del_page_from_active_list(struct zone *zone, struct page *page)
18 {
19 list_del(&page->lru);
20 zone->nr_active--;
21 }
22
23 static inline void
24 del_page_from_inactive_list(struct zone *zone, struct page *page)
25 {
26 list_del(&page->lru);
27 zone->nr_inactive--;
28 }
29
30 static inline void
31 del_page_from_lru(struct zone *zone, struct page *page)
32 {
33 list_del(&page->lru);
34 if (PageActive(page)) {
35 ClearPageActive(page);
36 zone->nr_active--;
37 } else {
38 zone->nr_inactive--;
39 }
40 }
41
42 /*
43 * Isolate one page from the LRU lists.
44 *
45 * - zone->lru_lock must be held
46 */
47 static inline int __isolate_lru_page(struct page *page)
48 {
49 if (unlikely(!TestClearPageLRU(page)))
50 return 0;
51
52 if (get_page_testone(page)) {
53 /*
54 * It is being freed elsewhere
55 */
56 __put_page(page);
57 SetPageLRU(page);
58 return -ENOENT;
59 }
60
61 return 1;
62 }