block_map
vdo_release_recovery_journal_block_reference(cache->zone->block_map->journal,
return get_tree_page_by_index(zone->block_map->forest, lock->root_index,
vdo_release_recovery_journal_block_reference(zone->block_map->journal,
nonce = zone->block_map->nonce;
zone->block_map->nonce,
page_index = (lock->tree_slots[0].page_index / zone->block_map->root_count);
physical_block_number_t vdo_find_block_map_page_pbn(struct block_map *map,
static int make_forest(struct block_map *map, block_count_t entries)
static void replace_forest(struct block_map *map)
cursor->parent->zone->block_map->nonce,
static struct boundary compute_boundary(struct block_map *map, root_count_t root_index)
void vdo_traverse_forest(struct block_map *map, vdo_entry_callback_fn callback,
static int __must_check initialize_block_map_zone(struct block_map *map,
zone->block_map = map;
struct block_map *map = context;
struct block_map *map = context;
struct block_map *map = context;
struct block_map *map = context;
void vdo_free_block_map(struct block_map *map)
struct block_map **map_ptr)
struct block_map *map;
result = vdo_allocate_extended(struct block_map,
struct block_map_state_2_0 vdo_record_block_map(const struct block_map *map)
void vdo_initialize_block_map_from_journal(struct block_map *map,
struct block_map *map = vdo_from_data_vio(data_vio)->block_map;
void vdo_advance_block_map_era(struct block_map *map,
struct block_map *map = context;
void vdo_drain_block_map(struct block_map *map, const struct admin_state_code *operation,
struct block_map *map = context;
void vdo_resume_block_map(struct block_map *map, struct vdo_completion *parent)
int vdo_prepare_to_grow_block_map(struct block_map *map,
void vdo_grow_block_map(struct block_map *map, struct vdo_completion *parent)
void vdo_abandon_block_map_growth(struct block_map *map)
struct block_map *block_map = zone->block_map;
struct recovery_journal *journal = block_map->journal;
struct block_map_statistics vdo_get_block_map_statistics(struct block_map *map)
(vdo_is_read_only(zone->block_map->vdo) ?
vdo_enter_read_only_mode(zone->block_map->vdo, result);
vdo_enter_read_only_mode(cache->zone->block_map->vdo, result);
nonce_t nonce = info->cache->zone->block_map->nonce;
struct block_map *map;
struct block_map *block_map;
physical_block_number_t vdo_find_block_map_page_pbn(struct block_map *map,
void vdo_traverse_forest(struct block_map *map, vdo_entry_callback_fn callback,
struct block_map **map_ptr);
void vdo_drain_block_map(struct block_map *map, const struct admin_state_code *operation,
void vdo_resume_block_map(struct block_map *map, struct vdo_completion *parent);
int __must_check vdo_prepare_to_grow_block_map(struct block_map *map,
void vdo_grow_block_map(struct block_map *map, struct vdo_completion *parent);
void vdo_abandon_block_map_growth(struct block_map *map);
void vdo_free_block_map(struct block_map *map);
struct block_map_state_2_0 __must_check vdo_record_block_map(const struct block_map *map);
void vdo_initialize_block_map_from_journal(struct block_map *map,
void vdo_advance_block_map_era(struct block_map *map,
struct block_map_statistics __must_check vdo_get_block_map_statistics(struct block_map *map);
result = vdo_decode_block_map(vdo->states.block_map,
&vdo->block_map);
result = vdo_prepare_to_grow_block_map(vdo->block_map,
vdo_drain_block_map(vdo->block_map, vdo_get_admin_state_code(state),
vdo->block_map);
vdo_initialize_block_map_from_journal(vdo->block_map,
vdo_resume_block_map(vdo->block_map, completion);
vdo->states.vdo.config.logical_blocks = vdo->block_map->next_entry_count;
vdo_grow_block_map(vdo->block_map, completion);
vdo->states.vdo.config.logical_blocks = vdo->block_map->entry_count;
vdo_abandon_block_map_growth(vdo->block_map);
vdo_abandon_block_map_growth(vdo->block_map);
if (vdo->block_map->next_entry_count != new_logical_blocks)
result = decode_block_map_state_2_0(buffer, offset, &states->block_map);
encode_block_map_state_2_0(buffer, offset, states->block_map);
struct block_map_state_2_0 block_map;
zone->block_map_zone = &vdo->block_map->zones[zone_number];
write_block_map_statistics("blockMap : ", &stats->block_map, ", ", buf, maxlen);
struct slab_depot *depot, struct block_map *block_map)
journal->block_map = block_map;
vdo_advance_block_map_era(journal->block_map, journal->tail);
struct block_map *block_map;
struct slab_depot *depot, struct block_map *block_map);
&repair->completion.vdo->block_map->zones[0], pbn, true,
vdo->block_map->zones[0].page_cache.rebuilding =
repair->completion.vdo->block_map->zones[0].page_cache.rebuilding = false;
vdo_drain_block_map(completion->vdo->block_map, VDO_ADMIN_STATE_RECOVERING,
struct block_map *block_map)
pbn = vdo_find_block_map_page_pbn(block_map, repair->page_to_fetch++);
struct block_map *block_map = repair->completion.vdo->block_map;
physical_block_number_t pbn = get_pbn_to_fetch(repair, block_map);
vdo_get_page(page_completion, &block_map->zones[0], pbn, true, repair,
struct block_map *map = completion->vdo->block_map;
struct vdo_page_cache *cache = &vdo->block_map->zones[0].page_cache;
vdo_traverse_forest(vdo->block_map, process_entry, completion);
vdo_drain_block_map(completion->vdo->block_map, operation, completion);
struct block_map_statistics block_map;
stats->block_map = vdo_get_block_map_statistics(vdo->block_map);
vdo_free_block_map(vdo_forget(vdo->block_map));
vdo->states.block_map = vdo_record_block_map(vdo->block_map);
struct block_map *block_map;
unsigned long *block_map;
block_map = dm->steering_sw_icm_alloc_blocks;
block_map = dm->header_modify_sw_icm_alloc_blocks;
block_map = dm->header_modify_pattern_sw_icm_alloc_blocks;
block_map = dm->header_encap_sw_icm_alloc_blocks;
if (!block_map)
block_idx = bitmap_find_next_zero_area(block_map, max_blocks, 0,
bitmap_set(block_map,
bitmap_clear(block_map,
unsigned long *block_map;
block_map = dm->steering_sw_icm_alloc_blocks;
block_map = dm->header_modify_sw_icm_alloc_blocks;
block_map = dm->header_modify_pattern_sw_icm_alloc_blocks;
block_map = dm->header_encap_sw_icm_alloc_blocks;
bitmap_clear(block_map,