Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/mm/folio-compat.c
26131 views
1
/*
2
* Compatibility functions which bloat the callers too much to make inline.
3
* All of the callers of these functions should be converted to use folios
4
* eventually.
5
*/
6
7
#include <linux/migrate.h>
8
#include <linux/pagemap.h>
9
#include <linux/rmap.h>
10
#include <linux/swap.h>
11
#include "internal.h"
12
13
void unlock_page(struct page *page)
14
{
15
return folio_unlock(page_folio(page));
16
}
17
EXPORT_SYMBOL(unlock_page);
18
19
void end_page_writeback(struct page *page)
20
{
21
return folio_end_writeback(page_folio(page));
22
}
23
EXPORT_SYMBOL(end_page_writeback);
24
25
void wait_on_page_writeback(struct page *page)
26
{
27
return folio_wait_writeback(page_folio(page));
28
}
29
EXPORT_SYMBOL_GPL(wait_on_page_writeback);
30
31
void mark_page_accessed(struct page *page)
32
{
33
folio_mark_accessed(page_folio(page));
34
}
35
EXPORT_SYMBOL(mark_page_accessed);
36
37
void set_page_writeback(struct page *page)
38
{
39
folio_start_writeback(page_folio(page));
40
}
41
EXPORT_SYMBOL(set_page_writeback);
42
43
bool set_page_dirty(struct page *page)
44
{
45
return folio_mark_dirty(page_folio(page));
46
}
47
EXPORT_SYMBOL(set_page_dirty);
48
49
int set_page_dirty_lock(struct page *page)
50
{
51
return folio_mark_dirty_lock(page_folio(page));
52
}
53
EXPORT_SYMBOL(set_page_dirty_lock);
54
55
bool clear_page_dirty_for_io(struct page *page)
56
{
57
return folio_clear_dirty_for_io(page_folio(page));
58
}
59
EXPORT_SYMBOL(clear_page_dirty_for_io);
60
61
bool redirty_page_for_writepage(struct writeback_control *wbc,
62
struct page *page)
63
{
64
return folio_redirty_for_writepage(wbc, page_folio(page));
65
}
66
EXPORT_SYMBOL(redirty_page_for_writepage);
67
68
int add_to_page_cache_lru(struct page *page, struct address_space *mapping,
69
pgoff_t index, gfp_t gfp)
70
{
71
return filemap_add_folio(mapping, page_folio(page), index, gfp);
72
}
73
EXPORT_SYMBOL(add_to_page_cache_lru);
74
75
noinline
76
struct page *pagecache_get_page(struct address_space *mapping, pgoff_t index,
77
fgf_t fgp_flags, gfp_t gfp)
78
{
79
struct folio *folio;
80
81
folio = __filemap_get_folio(mapping, index, fgp_flags, gfp);
82
if (IS_ERR(folio))
83
return NULL;
84
return folio_file_page(folio, index);
85
}
86
EXPORT_SYMBOL(pagecache_get_page);
87
88