Lines Matching refs:page

21 static int afs_readpage(struct file *file, struct page *page);
22 static void afs_invalidatepage(struct page *page, unsigned int offset,
24 static int afs_releasepage(struct page *page, gfp_t gfp_flags);
25 static int afs_launder_page(struct page *page);
108 static void afs_file_readpage_read_complete(struct page *page, in afs_file_readpage_read_complete() argument
112 _enter("%p,%p,%d", page, data, error); in afs_file_readpage_read_complete()
117 SetPageUptodate(page); in afs_file_readpage_read_complete()
118 unlock_page(page); in afs_file_readpage_read_complete()
125 int afs_page_filler(void *data, struct page *page) in afs_page_filler() argument
127 struct inode *inode = page->mapping->host; in afs_page_filler()
134 _enter("{%x},{%lu},{%lu}", key_serial(key), inode->i_ino, page->index); in afs_page_filler()
136 BUG_ON(!PageLocked(page)); in afs_page_filler()
145 page, in afs_page_filler()
167 offset = page->index << PAGE_CACHE_SHIFT; in afs_page_filler()
172 ret = afs_vnode_fetch_data(vnode, key, offset, len, page); in afs_page_filler()
182 fscache_uncache_page(vnode->cache, page); in afs_page_filler()
184 BUG_ON(PageFsCache(page)); in afs_page_filler()
188 SetPageUptodate(page); in afs_page_filler()
192 if (PageFsCache(page) && in afs_page_filler()
193 fscache_write_page(vnode->cache, page, GFP_KERNEL) != 0) { in afs_page_filler()
194 fscache_uncache_page(vnode->cache, page); in afs_page_filler()
195 BUG_ON(PageFsCache(page)); in afs_page_filler()
198 unlock_page(page); in afs_page_filler()
205 SetPageError(page); in afs_page_filler()
206 unlock_page(page); in afs_page_filler()
215 static int afs_readpage(struct file *file, struct page *page) in afs_readpage() argument
223 ret = afs_page_filler(key, page); in afs_readpage()
225 struct inode *inode = page->mapping->host; in afs_readpage()
230 ret = afs_page_filler(key, page); in afs_readpage()
300 static int afs_launder_page(struct page *page) in afs_launder_page() argument
302 _enter("{%lu}", page->index); in afs_launder_page()
312 static void afs_invalidatepage(struct page *page, unsigned int offset, in afs_invalidatepage() argument
315 struct afs_writeback *wb = (struct afs_writeback *) page_private(page); in afs_invalidatepage()
317 _enter("{%lu},%u,%u", page->index, offset, length); in afs_invalidatepage()
319 BUG_ON(!PageLocked(page)); in afs_invalidatepage()
324 if (PageFsCache(page)) { in afs_invalidatepage()
325 struct afs_vnode *vnode = AFS_FS_I(page->mapping->host); in afs_invalidatepage()
326 fscache_wait_on_page_write(vnode->cache, page); in afs_invalidatepage()
327 fscache_uncache_page(vnode->cache, page); in afs_invalidatepage()
331 if (PagePrivate(page)) { in afs_invalidatepage()
332 if (wb && !PageWriteback(page)) { in afs_invalidatepage()
333 set_page_private(page, 0); in afs_invalidatepage()
337 if (!page_private(page)) in afs_invalidatepage()
338 ClearPagePrivate(page); in afs_invalidatepage()
349 static int afs_releasepage(struct page *page, gfp_t gfp_flags) in afs_releasepage() argument
351 struct afs_writeback *wb = (struct afs_writeback *) page_private(page); in afs_releasepage()
352 struct afs_vnode *vnode = AFS_FS_I(page->mapping->host); in afs_releasepage()
355 vnode->fid.vid, vnode->fid.vnode, page->index, page->flags, in afs_releasepage()
361 if (!fscache_maybe_release_page(vnode->cache, page, gfp_flags)) { in afs_releasepage()
367 if (PagePrivate(page)) { in afs_releasepage()
369 set_page_private(page, 0); in afs_releasepage()
372 ClearPagePrivate(page); in afs_releasepage()