Lines Matching refs:page
23 bool __fscache_check_page_write(struct fscache_cookie *cookie, struct page *page) in __fscache_check_page_write() argument
28 val = radix_tree_lookup(&cookie->stores, page->index); in __fscache_check_page_write()
38 void __fscache_wait_on_page_write(struct fscache_cookie *cookie, struct page *page) in __fscache_wait_on_page_write() argument
42 wait_event(*wq, !__fscache_check_page_write(cookie, page)); in __fscache_wait_on_page_write()
51 bool release_page_wait_timeout(struct fscache_cookie *cookie, struct page *page) in release_page_wait_timeout() argument
55 return wait_event_timeout(*wq, !__fscache_check_page_write(cookie, page), in release_page_wait_timeout()
64 struct page *page, in __fscache_maybe_release_page() argument
67 struct page *xpage; in __fscache_maybe_release_page()
70 _enter("%p,%p,%x", cookie, page, gfp); in __fscache_maybe_release_page()
74 val = radix_tree_lookup(&cookie->stores, page->index); in __fscache_maybe_release_page()
78 __fscache_uncache_page(cookie, page); in __fscache_maybe_release_page()
84 if (radix_tree_tag_get(&cookie->stores, page->index, in __fscache_maybe_release_page()
95 if (radix_tree_tag_get(&cookie->stores, page->index, in __fscache_maybe_release_page()
103 xpage = radix_tree_delete(&cookie->stores, page->index); in __fscache_maybe_release_page()
109 ASSERTCMP(xpage, ==, page); in __fscache_maybe_release_page()
117 __fscache_uncache_page(cookie, page); in __fscache_maybe_release_page()
131 if (!release_page_wait_timeout(cookie, page)) in __fscache_maybe_release_page()
133 page, page->index); in __fscache_maybe_release_page()
144 struct page *page) in fscache_end_page_write() argument
147 struct page *xpage = NULL; in fscache_end_page_write()
155 radix_tree_tag_clear(&cookie->stores, page->index, in fscache_end_page_write()
157 if (!radix_tree_tag_get(&cookie->stores, page->index, in fscache_end_page_write()
160 xpage = radix_tree_delete(&cookie->stores, page->index); in fscache_end_page_write()
411 struct page *page, in __fscache_read_or_alloc_page() argument
421 _enter("%p,%p,,,", cookie, page); in __fscache_read_or_alloc_page()
434 ASSERTCMP(page, !=, NULL); in __fscache_read_or_alloc_page()
439 op = fscache_alloc_retrieval(cookie, page->mapping, in __fscache_read_or_alloc_page()
479 ret = object->cache->ops->allocate_page(op, page, gfp); in __fscache_read_or_alloc_page()
485 ret = object->cache->ops->read_or_alloc_page(op, page, gfp); in __fscache_read_or_alloc_page()
655 struct page *page, in __fscache_alloc_page() argument
663 _enter("%p,%p,,,", cookie, page); in __fscache_alloc_page()
671 ASSERTCMP(page, !=, NULL); in __fscache_alloc_page()
681 op = fscache_alloc_retrieval(cookie, page->mapping, NULL, NULL); in __fscache_alloc_page()
710 ret = object->cache->ops->allocate_page(op, page, gfp); in __fscache_alloc_page()
746 struct page *page; in __fscache_readpages_cancel() local
748 list_for_each_entry(page, pages, lru) { in __fscache_readpages_cancel()
749 if (PageFsCache(page)) in __fscache_readpages_cancel()
750 __fscache_uncache_page(cookie, page); in __fscache_readpages_cancel()
772 struct page *page; in fscache_write_op() local
812 page = NULL; in fscache_write_op()
817 page = results[0]; in fscache_write_op()
818 _debug("gang %d [%lx]", n, page->index); in fscache_write_op()
819 if (page->index >= op->store_limit) { in fscache_write_op()
824 radix_tree_tag_set(&cookie->stores, page->index, in fscache_write_op()
826 radix_tree_tag_clear(&cookie->stores, page->index, in fscache_write_op()
834 ret = object->cache->ops->write_page(op, page); in fscache_write_op()
836 fscache_end_page_write(object, page); in fscache_write_op()
863 struct page *page; in fscache_invalidate_writes() local
880 page = results[i]; in fscache_invalidate_writes()
881 radix_tree_delete(&cookie->stores, page->index); in fscache_invalidate_writes()
923 struct page *page, in __fscache_write_page() argument
931 _enter("%p,%x,", cookie, (u32) page->flags); in __fscache_write_page()
934 ASSERT(PageFsCache(page)); in __fscache_write_page()
975 ret = radix_tree_insert(&cookie->stores, page->index, page); in __fscache_write_page()
983 radix_tree_tag_set(&cookie->stores, page->index, in __fscache_write_page()
985 page_cache_get(page); in __fscache_write_page()
1026 radix_tree_delete(&cookie->stores, page->index); in __fscache_write_page()
1029 page_cache_release(page); in __fscache_write_page()
1058 void __fscache_uncache_page(struct fscache_cookie *cookie, struct page *page) in __fscache_uncache_page() argument
1062 _enter(",%p", page); in __fscache_uncache_page()
1065 ASSERTCMP(page, !=, NULL); in __fscache_uncache_page()
1070 if (!PageFsCache(page)) in __fscache_uncache_page()
1077 ClearPageFsCache(page); in __fscache_uncache_page()
1089 if (TestClearPageFsCache(page) && in __fscache_uncache_page()
1093 object->cache->ops->uncache_page(object, page); in __fscache_uncache_page()
1113 void fscache_mark_page_cached(struct fscache_retrieval *op, struct page *page) in fscache_mark_page_cached() argument
1121 _debug("- mark %p{%lx}", page, page->index); in fscache_mark_page_cached()
1122 if (TestSetPageFsCache(page)) { in fscache_mark_page_cached()
1127 cookie->def->name, page->index); in fscache_mark_page_cached()
1133 op->mapping, page); in fscache_mark_page_cached()
1182 struct page *page = pvec.pages[i]; in __fscache_uncache_all_inode_pages() local
1183 next = page->index; in __fscache_uncache_all_inode_pages()
1184 if (PageFsCache(page)) { in __fscache_uncache_all_inode_pages()
1185 __fscache_wait_on_page_write(cookie, page); in __fscache_uncache_all_inode_pages()
1186 __fscache_uncache_page(cookie, page); in __fscache_uncache_all_inode_pages()