Lines Matching full:page

32  * v9fs_fid_readpage - read an entire page in from 9P
34 * @page: structure to page
37 static int v9fs_fid_readpage(void *data, struct page *page) in v9fs_fid_readpage() argument
40 struct inode *inode = page->mapping->host; in v9fs_fid_readpage()
41 struct bio_vec bvec = {.bv_page = page, .bv_len = PAGE_SIZE}; in v9fs_fid_readpage()
47 BUG_ON(!PageLocked(page)); in v9fs_fid_readpage()
49 retval = v9fs_readpage_from_fscache(inode, page); in v9fs_fid_readpage()
55 retval = p9_client_read(fid, page_offset(page), &to, &err); in v9fs_fid_readpage()
57 v9fs_uncache_page(inode, page); in v9fs_fid_readpage()
62 zero_user(page, retval, PAGE_SIZE - retval); in v9fs_fid_readpage()
63 flush_dcache_page(page); in v9fs_fid_readpage()
64 SetPageUptodate(page); in v9fs_fid_readpage()
66 v9fs_readpage_to_fscache(inode, page); in v9fs_fid_readpage()
70 unlock_page(page); in v9fs_fid_readpage()
75 * v9fs_vfs_readpage - read an entire page in from 9P
78 * @page: structure to page
82 static int v9fs_vfs_readpage(struct file *filp, struct page *page) in v9fs_vfs_readpage() argument
84 return v9fs_fid_readpage(filp->private_data, page); in v9fs_vfs_readpage()
117 * v9fs_release_page - release the private state associated with a page
118 * @page: The page to be released
121 * Returns 1 if the page can be released, false otherwise.
124 static int v9fs_release_page(struct page *page, gfp_t gfp) in v9fs_release_page() argument
126 if (PagePrivate(page)) in v9fs_release_page()
128 return v9fs_fscache_release_page(page, gfp); in v9fs_release_page()
132 * v9fs_invalidate_page - Invalidate a page completely or partially
133 * @page: The page to be invalidated
138 static void v9fs_invalidate_page(struct page *page, unsigned int offset, in v9fs_invalidate_page() argument
143 * the private state assocated with the page in v9fs_invalidate_page()
146 v9fs_fscache_invalidate_page(page); in v9fs_invalidate_page()
149 static int v9fs_vfs_writepage_locked(struct page *page) in v9fs_vfs_writepage_locked() argument
151 struct inode *inode = page->mapping->host; in v9fs_vfs_writepage_locked()
158 if (page->index == size >> PAGE_SHIFT) in v9fs_vfs_writepage_locked()
163 bvec.bv_page = page; in v9fs_vfs_writepage_locked()
171 set_page_writeback(page); in v9fs_vfs_writepage_locked()
173 p9_client_write(v9inode->writeback_fid, page_offset(page), &from, &err); in v9fs_vfs_writepage_locked()
175 end_page_writeback(page); in v9fs_vfs_writepage_locked()
179 static int v9fs_vfs_writepage(struct page *page, struct writeback_control *wbc) in v9fs_vfs_writepage() argument
183 p9_debug(P9_DEBUG_VFS, "page %p\n", page); in v9fs_vfs_writepage()
185 retval = v9fs_vfs_writepage_locked(page); in v9fs_vfs_writepage()
188 redirty_page_for_writepage(wbc, page); in v9fs_vfs_writepage()
191 SetPageError(page); in v9fs_vfs_writepage()
192 mapping_set_error(page->mapping, retval); in v9fs_vfs_writepage()
197 unlock_page(page); in v9fs_vfs_writepage()
202 * v9fs_launder_page - Writeback a dirty page
203 * @page: The page to be cleaned up
208 static int v9fs_launder_page(struct page *page) in v9fs_launder_page() argument
211 struct inode *inode = page->mapping->host; in v9fs_launder_page()
213 v9fs_fscache_wait_on_page_write(inode, page); in v9fs_launder_page()
214 if (clear_page_dirty_for_io(page)) { in v9fs_launder_page()
215 retval = v9fs_vfs_writepage_locked(page); in v9fs_launder_page()
261 struct page **pagep, void **fsdata) in v9fs_write_begin()
264 struct page *page; in v9fs_write_begin() local
274 page = grab_cache_page_write_begin(mapping, index, flags); in v9fs_write_begin()
275 if (!page) { in v9fs_write_begin()
280 if (PageUptodate(page)) in v9fs_write_begin()
286 retval = v9fs_fid_readpage(v9inode->writeback_fid, page); in v9fs_write_begin()
287 put_page(page); in v9fs_write_begin()
291 *pagep = page; in v9fs_write_begin()
297 struct page *page, void *fsdata) in v9fs_write_end() argument
300 struct inode *inode = page->mapping->host; in v9fs_write_end()
304 if (!PageUptodate(page)) { in v9fs_write_end()
309 SetPageUptodate(page); in v9fs_write_end()
320 set_page_dirty(page); in v9fs_write_end()
322 unlock_page(page); in v9fs_write_end()
323 put_page(page); in v9fs_write_end()