Lines Matching refs:page

79 static int hwpoison_filter_dev(struct page *p)  in hwpoison_filter_dev()
109 static int hwpoison_filter_flags(struct page *p) in hwpoison_filter_flags()
134 static int hwpoison_filter_task(struct page *p) in hwpoison_filter_task()
157 static int hwpoison_filter_task(struct page *p) { return 0; } in hwpoison_filter_task()
160 int hwpoison_filter(struct page *p) in hwpoison_filter()
177 int hwpoison_filter(struct page *p) in hwpoison_filter()
191 unsigned long pfn, struct page *page, int flags) in kill_proc() argument
205 si.si_addr_lsb = compound_order(compound_head(page)) + PAGE_SHIFT; in kill_proc()
230 void shake_page(struct page *p, int access) in shake_page()
289 static void add_to_kill(struct task_struct *tsk, struct page *p, in add_to_kill()
335 int fail, struct page *page, unsigned long pfn, in kill_procs() argument
361 pfn, page, flags) < 0) in kill_procs()
414 static void collect_procs_anon(struct page *page, struct list_head *to_kill, in collect_procs_anon() argument
422 av = page_lock_anon_vma_read(page); in collect_procs_anon()
426 pgoff = page_to_pgoff(page); in collect_procs_anon()
437 if (!page_mapped_in_vma(page, vma)) in collect_procs_anon()
440 add_to_kill(t, page, vma, to_kill, tkc); in collect_procs_anon()
450 static void collect_procs_file(struct page *page, struct list_head *to_kill, in collect_procs_file() argument
455 struct address_space *mapping = page->mapping; in collect_procs_file()
460 pgoff_t pgoff = page_to_pgoff(page); in collect_procs_file()
475 add_to_kill(t, page, vma, to_kill, tkc); in collect_procs_file()
488 static void collect_procs(struct page *page, struct list_head *tokill, in collect_procs() argument
493 if (!page->mapping) in collect_procs()
499 if (PageAnon(page)) in collect_procs()
500 collect_procs_anon(page, tokill, &tk, force_early); in collect_procs()
502 collect_procs_file(page, tokill, &tk, force_early); in collect_procs()
576 static int delete_from_lru_cache(struct page *p) in delete_from_lru_cache()
599 static int me_kernel(struct page *p, unsigned long pfn) in me_kernel()
607 static int me_unknown(struct page *p, unsigned long pfn) in me_unknown()
616 static int me_pagecache_clean(struct page *p, unsigned long pfn) in me_pagecache_clean()
681 static int me_pagecache_dirty(struct page *p, unsigned long pfn) in me_pagecache_dirty()
747 static int me_swapcache_dirty(struct page *p, unsigned long pfn) in me_swapcache_dirty()
759 static int me_swapcache_clean(struct page *p, unsigned long pfn) in me_swapcache_clean()
775 static int me_huge_page(struct page *p, unsigned long pfn) in me_huge_page()
778 struct page *hpage = compound_head(p); in me_huge_page()
827 int (*action)(struct page *p, unsigned long pfn);
890 static int page_action(struct page_state *ps, struct page *p, in page_action()
921 static int hwpoison_user_mappings(struct page *p, unsigned long pfn, in hwpoison_user_mappings()
922 int trapno, int flags, struct page **hpagep) in hwpoison_user_mappings()
929 struct page *hpage = *hpagep; in hwpoison_user_mappings()
930 struct page *ppage; in hwpoison_user_mappings()
1065 static void set_page_hwpoison_huge_page(struct page *hpage) in set_page_hwpoison_huge_page()
1073 static void clear_page_hwpoison_huge_page(struct page *hpage) in clear_page_hwpoison_huge_page()
1102 struct page *p; in memory_failure()
1103 struct page *hpage; in memory_failure()
1430 struct page *page; in unpoison_memory() local
1431 struct page *p; in unpoison_memory()
1439 page = compound_head(p); in unpoison_memory()
1451 if (!PageHuge(page) && PageTransHuge(page)) { in unpoison_memory()
1456 nr_pages = 1 << compound_order(page); in unpoison_memory()
1458 if (!get_page_unless_zero(page)) { in unpoison_memory()
1465 if (PageHuge(page)) { in unpoison_memory()
1475 lock_page(page); in unpoison_memory()
1482 if (TestClearPageHWPoison(page)) { in unpoison_memory()
1486 if (PageHuge(page)) in unpoison_memory()
1487 clear_page_hwpoison_huge_page(page); in unpoison_memory()
1489 unlock_page(page); in unpoison_memory()
1491 put_page(page); in unpoison_memory()
1493 put_page(page); in unpoison_memory()
1499 static struct page *new_page(struct page *p, unsigned long private, int **x) in new_page()
1515 static int __get_any_page(struct page *p, unsigned long pfn, int flags) in __get_any_page()
1545 static int get_any_page(struct page *page, unsigned long pfn, int flags) in get_any_page() argument
1547 int ret = __get_any_page(page, pfn, flags); in get_any_page()
1549 if (ret == 1 && !PageHuge(page) && !PageLRU(page)) { in get_any_page()
1553 put_page(page); in get_any_page()
1554 shake_page(page, 1); in get_any_page()
1559 ret = __get_any_page(page, pfn, 0); in get_any_page()
1560 if (ret == 1 && !PageLRU(page)) { in get_any_page()
1562 put_page(page); in get_any_page()
1564 pfn, page->flags); in get_any_page()
1571 static int soft_offline_huge_page(struct page *page, int flags) in soft_offline_huge_page() argument
1574 unsigned long pfn = page_to_pfn(page); in soft_offline_huge_page()
1575 struct page *hpage = compound_head(page); in soft_offline_huge_page()
1606 pfn, ret, page->flags); in soft_offline_huge_page()
1617 if (PageHuge(page)) { in soft_offline_huge_page()
1623 SetPageHWPoison(page); in soft_offline_huge_page()
1630 static int __soft_offline_page(struct page *page, int flags) in __soft_offline_page() argument
1633 unsigned long pfn = page_to_pfn(page); in __soft_offline_page()
1641 lock_page(page); in __soft_offline_page()
1642 wait_on_page_writeback(page); in __soft_offline_page()
1643 if (PageHWPoison(page)) { in __soft_offline_page()
1644 unlock_page(page); in __soft_offline_page()
1645 put_page(page); in __soft_offline_page()
1653 ret = invalidate_inode_page(page); in __soft_offline_page()
1654 unlock_page(page); in __soft_offline_page()
1660 put_page(page); in __soft_offline_page()
1662 SetPageHWPoison(page); in __soft_offline_page()
1672 ret = isolate_lru_page(page); in __soft_offline_page()
1677 put_page(page); in __soft_offline_page()
1680 inc_zone_page_state(page, NR_ISOLATED_ANON + in __soft_offline_page()
1681 page_is_file_cache(page)); in __soft_offline_page()
1682 list_add(&page->lru, &pagelist); in __soft_offline_page()
1687 list_del(&page->lru); in __soft_offline_page()
1688 dec_zone_page_state(page, NR_ISOLATED_ANON + in __soft_offline_page()
1689 page_is_file_cache(page)); in __soft_offline_page()
1690 putback_lru_page(page); in __soft_offline_page()
1694 pfn, ret, page->flags); in __soft_offline_page()
1698 SetPageHWPoison(page); in __soft_offline_page()
1703 pfn, ret, page_count(page), page->flags); in __soft_offline_page()
1730 int soft_offline_page(struct page *page, int flags) in soft_offline_page() argument
1733 unsigned long pfn = page_to_pfn(page); in soft_offline_page()
1734 struct page *hpage = compound_head(page); in soft_offline_page()
1736 if (PageHWPoison(page)) { in soft_offline_page()
1740 if (!PageHuge(page) && PageTransHuge(hpage)) { in soft_offline_page()
1750 ret = get_any_page(page, pfn, flags); in soft_offline_page()
1753 if (PageHuge(page)) in soft_offline_page()
1754 ret = soft_offline_huge_page(page, flags); in soft_offline_page()
1756 ret = __soft_offline_page(page, flags); in soft_offline_page()
1758 if (PageHuge(page)) { in soft_offline_page()
1764 if (!TestSetPageHWPoison(page)) in soft_offline_page()