tree_page
static struct tree_page * __must_check get_tree_page_by_index(struct forest *forest,
static inline struct tree_page *get_tree_page(const struct block_map_zone *zone,
static void set_generation(struct block_map_zone *zone, struct tree_page *page,
static void write_page(struct tree_page *tree_page, struct pooled_vio *vio);
write_page(container_of(waiter, struct tree_page, waiter), context);
static void enqueue_page(struct tree_page *page, struct block_map_zone *zone)
struct tree_page *page = container_of(waiter, struct tree_page, waiter);
struct tree_page *page = completion->parent;
struct tree_page, waiter);
struct tree_page *tree_page = completion->parent;
if (zone->flusher == tree_page)
static void write_page(struct tree_page *tree_page, struct pooled_vio *vio)
struct block_map_page *page = vdo_as_block_map_page(tree_page);
if ((zone->flusher != tree_page) &&
is_not_older(zone, tree_page->generation, zone->generation)) {
enqueue_page(tree_page, zone);
completion->parent = tree_page;
memcpy(vio->vio.data, tree_page->page_buffer, VDO_BLOCK_SIZE);
tree_page->writing = true;
tree_page->writing_generation = tree_page->generation;
tree_page->writing_recovery_lock = tree_page->recovery_lock;
tree_page->recovery_lock = 0;
struct tree_page *tree_page;
tree_page = get_tree_page(zone, tree_lock);
page = (struct block_map_page *) tree_page->page_buffer;
struct tree_page *page, *ttmp;
struct tree_page *tree_page;
tree_page = get_tree_page(zone, tree_lock);
page = (struct block_map_page *) tree_page->page_buffer;
old_lock = tree_page->recovery_lock;
&tree_page->recovery_lock);
if (vdo_waiter_is_waiting(&tree_page->waiter)) {
if (zone->flusher != tree_page) {
set_generation(zone, tree_page, zone->generation);
INIT_LIST_HEAD(&tree_page->entry);
add_to_dirty_lists(zone, &tree_page->entry, VDO_TREE_PAGE,
old_lock, tree_page->recovery_lock);
tree_page = get_tree_page(zone, tree_lock);
vdo_format_block_map_page(tree_page->page_buffer,
struct tree_page *tree_page;
tree_page = get_tree_page_by_index(map->forest, root_index, 1, page_index);
page = (struct block_map_page *) tree_page->page_buffer;
void vdo_write_tree_page(struct tree_page *page, struct block_map_zone *zone)
struct tree_page *page_ptr;
index * sizeof(struct tree_page *));
struct tree_page *tree_page =
struct block_map_page *page = (struct block_map_page *) tree_page->page_buffer;
struct tree_page *tree_page =
struct block_map_page *page = (struct block_map_page *) tree_page->page_buffer;
vdo_write_tree_page(tree_page, cursor->parent->zone);
vdo_write_tree_page(tree_page, cursor->parent->zone);
vdo_write_tree_page(tree_page, cursor->parent->zone);
struct tree_page *levels[VDO_BLOCK_MAP_TREE_HEIGHT];
struct tree_page **pages;
struct tree_page *flusher;
vdo_as_block_map_page(struct tree_page *tree_page)
return (struct block_map_page *) tree_page->page_buffer;
void vdo_write_tree_page(struct tree_page *page, struct block_map_zone *zone);
struct page *tree_page)
tree_page, page);
struct page *tree_page;
tree_page = get_mergeable_page(tree_rmap_item);
if (!tree_page)
if (page == tree_page) {
put_page(tree_page);
ret = memcmp_pages(page, tree_page);
put_page(tree_page);
put_page(tree_page);
page_to_nid(tree_page) != nid) {
put_page(tree_page);
*tree_pagep = tree_page;
struct page *tree_page = NULL;
unstable_tree_search_insert(rmap_item, page, &tree_page);
tree_rmap_item, tree_page);
&& compound_head(page) == compound_head(tree_page);
put_page(tree_page);