Lines Matching refs:page
19 int afs_set_page_dirty(struct page *page) in afs_set_page_dirty() argument
22 return __set_page_dirty_nobuffers(page); in afs_set_page_dirty()
29 loff_t pos, unsigned int len, struct page *page) in afs_fill_page() argument
41 data = kmap(page); in afs_fill_page()
43 kunmap(page); in afs_fill_page()
56 req->pages[0] = page; in afs_fill_page()
57 get_page(page); in afs_fill_page()
79 struct page **pagep, void **fsdata) in afs_write_begin()
82 struct page *page; in afs_write_begin() local
96 BUILD_BUG_ON(PAGE_SIZE > 32768 && sizeof(page->private) < 8); in afs_write_begin()
98 page = grab_cache_page_write_begin(mapping, index, flags); in afs_write_begin()
99 if (!page) in afs_write_begin()
102 if (!PageUptodate(page) && len != PAGE_SIZE) { in afs_write_begin()
103 ret = afs_fill_page(vnode, key, pos & PAGE_MASK, PAGE_SIZE, page); in afs_write_begin()
105 unlock_page(page); in afs_write_begin()
106 put_page(page); in afs_write_begin()
110 SetPageUptodate(page); in afs_write_begin()
114 *pagep = page; in afs_write_begin()
121 if (PagePrivate(page)) { in afs_write_begin()
122 priv = page_private(page); in afs_write_begin()
129 if (PageWriteback(page)) { in afs_write_begin()
131 page->index, priv); in afs_write_begin()
153 page->index, priv); in afs_write_begin()
154 SetPagePrivate(page); in afs_write_begin()
155 set_page_private(page, priv); in afs_write_begin()
164 ret = write_one_page(page); in afs_write_begin()
170 ret = lock_page_killable(page); in afs_write_begin()
183 struct page *page, void *fsdata) in afs_write_end() argument
191 vnode->fid.vid, vnode->fid.vnode, page->index); in afs_write_end()
204 if (!PageUptodate(page)) { in afs_write_end()
211 len - copied, page); in afs_write_end()
215 SetPageUptodate(page); in afs_write_end()
218 set_page_dirty(page); in afs_write_end()
219 if (PageDirty(page)) in afs_write_end()
224 unlock_page(page); in afs_write_end()
225 put_page(page); in afs_write_end()
254 struct page *page = pv.pages[loop]; in afs_kill_pages() local
255 ClearPageUptodate(page); in afs_kill_pages()
256 SetPageError(page); in afs_kill_pages()
257 end_page_writeback(page); in afs_kill_pages()
258 if (page->index >= first) in afs_kill_pages()
259 first = page->index + 1; in afs_kill_pages()
260 lock_page(page); in afs_kill_pages()
261 generic_error_remove_page(mapping, page); in afs_kill_pages()
262 unlock_page(page); in afs_kill_pages()
297 struct page *page = pv.pages[loop]; in afs_redirty_pages() local
299 redirty_page_for_writepage(wbc, page); in afs_redirty_pages()
300 end_page_writeback(page); in afs_redirty_pages()
301 if (page->index >= first) in afs_redirty_pages()
302 first = page->index + 1; in afs_redirty_pages()
453 struct page *primary_page, in afs_write_back_from_locked_page()
457 struct page *pages[8], *page; in afs_write_back_from_locked_page() local
508 page = pages[loop]; in afs_write_back_from_locked_page()
512 if (page->index > final_page) in afs_write_back_from_locked_page()
514 if (!trylock_page(page)) in afs_write_back_from_locked_page()
516 if (!PageDirty(page) || PageWriteback(page)) { in afs_write_back_from_locked_page()
517 unlock_page(page); in afs_write_back_from_locked_page()
521 priv = page_private(page); in afs_write_back_from_locked_page()
526 unlock_page(page); in afs_write_back_from_locked_page()
532 page->index, priv); in afs_write_back_from_locked_page()
534 if (!clear_page_dirty_for_io(page)) in afs_write_back_from_locked_page()
536 if (test_set_page_writeback(page)) in afs_write_back_from_locked_page()
538 unlock_page(page); in afs_write_back_from_locked_page()
539 put_page(page); in afs_write_back_from_locked_page()
609 int afs_writepage(struct page *page, struct writeback_control *wbc) in afs_writepage() argument
613 _enter("{%lx},", page->index); in afs_writepage()
615 ret = afs_write_back_from_locked_page(page->mapping, wbc, page, in afs_writepage()
635 struct page *page; in afs_writepages_region() local
642 PAGECACHE_TAG_DIRTY, 1, &page); in afs_writepages_region()
646 _debug("wback %lx", page->index); in afs_writepages_region()
654 ret = lock_page_killable(page); in afs_writepages_region()
656 put_page(page); in afs_writepages_region()
661 if (page->mapping != mapping || !PageDirty(page)) { in afs_writepages_region()
662 unlock_page(page); in afs_writepages_region()
663 put_page(page); in afs_writepages_region()
667 if (PageWriteback(page)) { in afs_writepages_region()
668 unlock_page(page); in afs_writepages_region()
670 wait_on_page_writeback(page); in afs_writepages_region()
671 put_page(page); in afs_writepages_region()
675 if (!clear_page_dirty_for_io(page)) in afs_writepages_region()
677 ret = afs_write_back_from_locked_page(mapping, wbc, page, end); in afs_writepages_region()
678 put_page(page); in afs_writepages_region()
784 vnode->fid.vid, vnode->fid.vnode, vmf->page->index); in afs_page_mkwrite()
792 fscache_wait_on_page_write(vnode->cache, vmf->page); in afs_page_mkwrite()
795 if (PageWriteback(vmf->page) && in afs_page_mkwrite()
796 wait_on_page_bit_killable(vmf->page, PG_writeback) < 0) in afs_page_mkwrite()
799 if (lock_page_killable(vmf->page) < 0) in afs_page_mkwrite()
806 wait_on_page_writeback(vmf->page); in afs_page_mkwrite()
811 vmf->page->index, priv); in afs_page_mkwrite()
812 SetPagePrivate(vmf->page); in afs_page_mkwrite()
813 set_page_private(vmf->page, priv); in afs_page_mkwrite()
851 int afs_launder_page(struct page *page) in afs_launder_page() argument
853 struct address_space *mapping = page->mapping; in afs_launder_page()
859 _enter("{%lx}", page->index); in afs_launder_page()
861 priv = page_private(page); in afs_launder_page()
862 if (clear_page_dirty_for_io(page)) { in afs_launder_page()
865 if (PagePrivate(page)) { in afs_launder_page()
871 page->index, priv); in afs_launder_page()
872 ret = afs_store_data(mapping, page->index, page->index, t, f); in afs_launder_page()
876 page->index, priv); in afs_launder_page()
877 set_page_private(page, 0); in afs_launder_page()
878 ClearPagePrivate(page); in afs_launder_page()
881 if (PageFsCache(page)) { in afs_launder_page()
882 fscache_wait_on_page_write(vnode->cache, page); in afs_launder_page()
883 fscache_uncache_page(vnode->cache, page); in afs_launder_page()