Lines Matching refs:page
14 struct page **pagep, void **fsdata) in logfs_write_begin()
17 struct page *page; in logfs_write_begin() local
20 page = grab_cache_page_write_begin(mapping, index, flags); in logfs_write_begin()
21 if (!page) in logfs_write_begin()
23 *pagep = page; in logfs_write_begin()
25 if ((len == PAGE_CACHE_SIZE) || PageUptodate(page)) in logfs_write_begin()
32 zero_user_segments(page, 0, start, end, PAGE_CACHE_SIZE); in logfs_write_begin()
35 return logfs_readpage_nolock(page); in logfs_write_begin()
39 loff_t pos, unsigned len, unsigned copied, struct page *page, in logfs_write_end() argument
43 pgoff_t index = page->index; in logfs_write_end()
49 BUG_ON(page->index > I3_BLOCKS); in logfs_write_end()
56 if (!PageUptodate(page)) { in logfs_write_end()
69 SetPageUptodate(page); in logfs_write_end()
70 if (!PageDirty(page)) { in logfs_write_end()
71 if (!get_page_reserve(inode, page)) in logfs_write_end()
72 __set_page_dirty_nobuffers(page); in logfs_write_end()
74 ret = logfs_write_buf(inode, page, WF_LOCK); in logfs_write_end()
77 unlock_page(page); in logfs_write_end()
78 page_cache_release(page); in logfs_write_end()
82 int logfs_readpage(struct file *file, struct page *page) in logfs_readpage() argument
86 ret = logfs_readpage_nolock(page); in logfs_readpage()
87 unlock_page(page); in logfs_readpage()
96 static void clear_radix_tree_dirty(struct page *page) in clear_radix_tree_dirty() argument
98 BUG_ON(PagePrivate(page) || page->private); in clear_radix_tree_dirty()
99 set_page_writeback(page); in clear_radix_tree_dirty()
100 end_page_writeback(page); in clear_radix_tree_dirty()
103 static int __logfs_writepage(struct page *page) in __logfs_writepage() argument
105 struct inode *inode = page->mapping->host; in __logfs_writepage()
108 err = logfs_write_buf(inode, page, WF_LOCK); in __logfs_writepage()
110 set_page_dirty(page); in __logfs_writepage()
112 clear_radix_tree_dirty(page); in __logfs_writepage()
113 unlock_page(page); in __logfs_writepage()
117 static int logfs_writepage(struct page *page, struct writeback_control *wbc) in logfs_writepage() argument
119 struct inode *inode = page->mapping->host; in logfs_writepage()
126 log_file("logfs_writepage(%lx, %lx, %p)\n", inode->i_ino, page->index, in logfs_writepage()
127 page); in logfs_writepage()
129 logfs_unpack_index(page->index, &bix, &level); in logfs_writepage()
133 return __logfs_writepage(page); in logfs_writepage()
142 return __logfs_writepage(page); in logfs_writepage()
147 unlock_page(page); in logfs_writepage()
158 zero_user_segment(page, offset, PAGE_CACHE_SIZE); in logfs_writepage()
159 return __logfs_writepage(page); in logfs_writepage()
162 static void logfs_invalidatepage(struct page *page, unsigned int offset, in logfs_invalidatepage() argument
165 struct logfs_block *block = logfs_block(page); in logfs_invalidatepage()
168 struct super_block *sb = page->mapping->host->i_sb; in logfs_invalidatepage()
175 move_page_to_btree(page); in logfs_invalidatepage()
176 BUG_ON(PagePrivate(page) || page->private); in logfs_invalidatepage()
179 static int logfs_releasepage(struct page *page, gfp_t only_xfs_uses_this) in logfs_releasepage() argument