Lines Matching refs:page

33  * the pages containing the block device's contents. A brd page's ->index is
54 * Look up and return a brd's page for a given sector.
56 static struct page *brd_lookup_page(struct brd_device *brd, sector_t sector)
59 struct page *page;
62 * The page lifetime is protected by the fact that we have opened the
73 idx = sector >> PAGE_SECTORS_SHIFT; /* sector to page index */
74 page = radix_tree_lookup(&brd->brd_pages, idx);
77 BUG_ON(page && page->index != idx);
79 return page;
83 * Insert a new page for a given sector, if one does not already exist.
88 struct page *page;
91 page = brd_lookup_page(brd, sector);
92 if (page)
97 * block or filesystem layers from page reclaim.
100 page = alloc_page(gfp_flags);
101 if (!page)
105 __free_page(page);
111 page->index = idx;
112 if (radix_tree_insert(&brd->brd_pages, idx, page)) {
113 __free_page(page);
114 page = radix_tree_lookup(&brd->brd_pages, idx);
115 BUG_ON(!page);
116 BUG_ON(page->index != idx);
132 struct page *pages[FREE_BATCH];
193 struct page *page;
199 page = brd_lookup_page(brd, sector);
200 BUG_ON(!page);
202 dst = kmap_atomic(page);
210 page = brd_lookup_page(brd, sector);
211 BUG_ON(!page);
213 dst = kmap_atomic(page);
225 struct page *page;
231 page = brd_lookup_page(brd, sector);
232 if (page) {
233 src = kmap_atomic(page);
243 page = brd_lookup_page(brd, sector);
244 if (page) {
245 src = kmap_atomic(page);
256 static int brd_do_bvec(struct brd_device *brd, struct page *page,
269 mem = kmap_atomic(page);
272 flush_dcache_page(page);
274 flush_dcache_page(page);
317 struct page *page, unsigned int op)
322 if (PageTransHuge(page))
324 err = brd_do_bvec(brd, page, PAGE_SIZE, 0, op, sector);
325 page_endio(page, op_is_write(op), err);