Symbol: forest
drivers/md/dm-vdo/block-map.c
1370
static struct tree_page * __must_check get_tree_page_by_index(struct forest *forest,
drivers/md/dm-vdo/block-map.c
1378
for (segment = 0; segment < forest->segments; segment++) {
drivers/md/dm-vdo/block-map.c
1379
page_number_t border = forest->boundaries[segment].levels[height - 1];
drivers/md/dm-vdo/block-map.c
1382
struct block_map_tree *tree = &forest->trees[root_index];
drivers/md/dm-vdo/block-map.c
1397
return get_tree_page_by_index(zone->block_map->forest, lock->root_index,
drivers/md/dm-vdo/block-map.c
2325
tree_page = get_tree_page_by_index(map->forest, root_index, 1, page_index);
drivers/md/dm-vdo/block-map.c
2354
static int make_segment(struct forest *old_forest, block_count_t new_pages,
drivers/md/dm-vdo/block-map.c
2355
struct boundary *new_boundary, struct forest *forest)
drivers/md/dm-vdo/block-map.c
2364
forest->segments = index + 1;
drivers/md/dm-vdo/block-map.c
2366
result = vdo_allocate(forest->segments, "forest boundary array", &forest->boundaries);
drivers/md/dm-vdo/block-map.c
2370
result = vdo_allocate(forest->segments, "forest page pointers", &forest->pages);
drivers/md/dm-vdo/block-map.c
2374
result = vdo_allocate(new_pages, "new forest pages", &forest->pages[index]);
drivers/md/dm-vdo/block-map.c
2379
memcpy(forest->boundaries, old_forest->boundaries,
drivers/md/dm-vdo/block-map.c
2381
memcpy(forest->pages, old_forest->pages,
drivers/md/dm-vdo/block-map.c
2385
memcpy(&(forest->boundaries[index]), new_boundary, sizeof(struct boundary));
drivers/md/dm-vdo/block-map.c
2393
page_ptr = forest->pages[index];
drivers/md/dm-vdo/block-map.c
2394
for (root = 0; root < forest->map->root_count; root++) {
drivers/md/dm-vdo/block-map.c
2396
struct block_map_tree *tree = &(forest->trees[root]);
drivers/md/dm-vdo/block-map.c
2399
result = vdo_allocate(forest->segments, "tree root segments", &tree->segments);
drivers/md/dm-vdo/block-map.c
2418
forest->map->nonce,
drivers/md/dm-vdo/block-map.c
2421
vdo_pack_block_map_entry(forest->map->root_origin + root,
drivers/md/dm-vdo/block-map.c
2431
static void deforest(struct forest *forest, size_t first_page_segment)
drivers/md/dm-vdo/block-map.c
2435
if (forest->pages != NULL) {
drivers/md/dm-vdo/block-map.c
2438
for (segment = first_page_segment; segment < forest->segments; segment++)
drivers/md/dm-vdo/block-map.c
2439
vdo_free(forest->pages[segment]);
drivers/md/dm-vdo/block-map.c
2440
vdo_free(forest->pages);
drivers/md/dm-vdo/block-map.c
2443
for (root = 0; root < forest->map->root_count; root++)
drivers/md/dm-vdo/block-map.c
2444
vdo_free(forest->trees[root].segments);
drivers/md/dm-vdo/block-map.c
2446
vdo_free(forest->boundaries);
drivers/md/dm-vdo/block-map.c
2447
vdo_free(forest);
drivers/md/dm-vdo/block-map.c
2460
struct forest *forest, *old_forest = map->forest;
drivers/md/dm-vdo/block-map.c
2475
result = vdo_allocate_extended(map->root_count, trees, __func__, &forest);
drivers/md/dm-vdo/block-map.c
2479
forest->map = map;
drivers/md/dm-vdo/block-map.c
2480
result = make_segment(old_forest, new_pages, &new_boundary, forest);
drivers/md/dm-vdo/block-map.c
2482
deforest(forest, forest->segments - 1);
drivers/md/dm-vdo/block-map.c
2486
map->next_forest = forest;
drivers/md/dm-vdo/block-map.c
2498
if (map->forest != NULL)
drivers/md/dm-vdo/block-map.c
2499
deforest(map->forest, map->forest->segments);
drivers/md/dm-vdo/block-map.c
2500
map->forest = vdo_forget(map->next_forest);
drivers/md/dm-vdo/block-map.c
2717
.tree = &map->forest->trees[root],
drivers/md/dm-vdo/block-map.c
2869
if (map->forest != NULL)
drivers/md/dm-vdo/block-map.c
2870
deforest(vdo_forget(map->forest), 0);
drivers/md/dm-vdo/block-map.c
3073
struct forest *forest = vdo_forget(map->next_forest);
drivers/md/dm-vdo/block-map.c
3075
if (forest != NULL)
drivers/md/dm-vdo/block-map.c
3076
deforest(forest, forest->segments - 1);
drivers/md/dm-vdo/block-map.h
182
struct forest;
drivers/md/dm-vdo/block-map.h
272
struct forest *forest;
drivers/md/dm-vdo/block-map.h
274
struct forest *next_forest;