]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blame_incremental - include/linux/page_owner.h
blktrace: Fix potential deadlock between delete & sysfs ops
[mirror_ubuntu-bionic-kernel.git] / include / linux / page_owner.h
... / ...
CommitLineData
1#ifndef __LINUX_PAGE_OWNER_H
2#define __LINUX_PAGE_OWNER_H
3
4#include <linux/jump_label.h>
5
6#ifdef CONFIG_PAGE_OWNER
7extern struct static_key_false page_owner_inited;
8extern struct page_ext_operations page_owner_ops;
9
10extern void __reset_page_owner(struct page *page, unsigned int order);
11extern void __set_page_owner(struct page *page,
12 unsigned int order, gfp_t gfp_mask);
13extern void __split_page_owner(struct page *page, unsigned int order);
14extern void __copy_page_owner(struct page *oldpage, struct page *newpage);
15extern void __set_page_owner_migrate_reason(struct page *page, int reason);
16extern void __dump_page_owner(struct page *page);
17extern void pagetypeinfo_showmixedcount_print(struct seq_file *m,
18 pg_data_t *pgdat, struct zone *zone);
19
20static inline void reset_page_owner(struct page *page, unsigned int order)
21{
22 if (static_branch_unlikely(&page_owner_inited))
23 __reset_page_owner(page, order);
24}
25
26static inline void set_page_owner(struct page *page,
27 unsigned int order, gfp_t gfp_mask)
28{
29 if (static_branch_unlikely(&page_owner_inited))
30 __set_page_owner(page, order, gfp_mask);
31}
32
33static inline void split_page_owner(struct page *page, unsigned int order)
34{
35 if (static_branch_unlikely(&page_owner_inited))
36 __split_page_owner(page, order);
37}
38static inline void copy_page_owner(struct page *oldpage, struct page *newpage)
39{
40 if (static_branch_unlikely(&page_owner_inited))
41 __copy_page_owner(oldpage, newpage);
42}
43static inline void set_page_owner_migrate_reason(struct page *page, int reason)
44{
45 if (static_branch_unlikely(&page_owner_inited))
46 __set_page_owner_migrate_reason(page, reason);
47}
48static inline void dump_page_owner(struct page *page)
49{
50 if (static_branch_unlikely(&page_owner_inited))
51 __dump_page_owner(page);
52}
53#else
54static inline void reset_page_owner(struct page *page, unsigned int order)
55{
56}
57static inline void set_page_owner(struct page *page,
58 unsigned int order, gfp_t gfp_mask)
59{
60}
61static inline void split_page_owner(struct page *page,
62 unsigned int order)
63{
64}
65static inline void copy_page_owner(struct page *oldpage, struct page *newpage)
66{
67}
68static inline void set_page_owner_migrate_reason(struct page *page, int reason)
69{
70}
71static inline void dump_page_owner(struct page *page)
72{
73}
74#endif /* CONFIG_PAGE_OWNER */
75#endif /* __LINUX_PAGE_OWNER_H */