range_tree_t
range_tree_t *rt = vd->vdev_dtl[t];
range_tree_t *allocs = range_tree_create(NULL, RANGE_SEG64, NULL, 0, 0);
static range_tree_t *mos_refd_objs;
range_tree_t *rt = msp->ms_allocatable;
range_tree_t *rt = queue->q_exts_by_addr;
range_tree_t *q_exts_by_addr;
range_tree_t *rt;
range_tree_t *rt = mssap->rt;
metaslab_size_tree_full_load(range_tree_t *rt)
metaslab_rt_create(range_tree_t *rt, void *arg)
metaslab_rt_destroy(range_tree_t *rt, void *arg)
metaslab_rt_add(range_tree_t *rt, range_seg_t *rs, void *arg)
metaslab_rt_remove(range_tree_t *rt, range_seg_t *rs, void *arg)
metaslab_rt_vacate(range_tree_t *rt, void *arg)
metaslab_block_find(zfs_btree_t *t, range_tree_t *rt, uint64_t start,
metaslab_block_picker(range_tree_t *rt, uint64_t *cursor, uint64_t size,
range_tree_t *rt = msp->ms_allocatable;
range_tree_t *rt = msp->ms_allocatable;
range_tree_t *rt = msp->ms_allocatable;
range_tree_t *rt)
static void metaslab_rt_add(range_tree_t *rt, range_seg_t *rs, void *arg);
range_tree_t *condense_tree;
range_tree_t *tmp_tree = range_tree_create(NULL, type, NULL, start,
range_tree_t *alloctree = msp->ms_allocating[txg & TXG_MASK];
range_tree_t **defer_tree;
range_tree_t *rt = msp->ms_allocatable;
range_tree_stat_incr(range_tree_t *rt, range_seg_t *rs)
range_tree_stat_decr(range_tree_t *rt, range_seg_t *rs)
range_tree_t *
range_tree_t *rt = kmem_zalloc(sizeof (range_tree_t), KM_SLEEP);
range_tree_t *
range_tree_destroy(range_tree_t *rt)
range_tree_adjust_fill(range_tree_t *rt, range_seg_t *rs, int64_t delta)
range_tree_t *rt = arg;
range_tree_remove_impl(range_tree_t *rt, uint64_t start, uint64_t size,
range_tree_remove_fill(range_tree_t *rt, uint64_t start, uint64_t size)
range_tree_resize_segment(range_tree_t *rt, range_seg_t *rs,
range_tree_find_impl(range_tree_t *rt, uint64_t start, uint64_t size)
range_tree_find(range_tree_t *rt, uint64_t start, uint64_t size)
range_tree_verify_not_present(range_tree_t *rt, uint64_t off, uint64_t size)
range_tree_contains(range_tree_t *rt, uint64_t start, uint64_t size)
range_tree_find_in(range_tree_t *rt, uint64_t start, uint64_t size,
range_tree_clear(range_tree_t *rt, uint64_t start, uint64_t size)
range_tree_swap(range_tree_t **rtsrc, range_tree_t **rtdst)
range_tree_t *rt;
range_tree_vacate(range_tree_t *rt, range_tree_func_t *func, void *arg)
range_tree_walk(range_tree_t *rt, range_tree_func_t *func, void *arg)
range_tree_first(range_tree_t *rt)
range_tree_space(range_tree_t *rt)
range_tree_numsegs(range_tree_t *rt)
range_tree_is_empty(range_tree_t *rt)
rt_btree_create(range_tree_t *rt, void *arg)
rt_btree_destroy(range_tree_t *rt, void *arg)
rt_btree_add(range_tree_t *rt, range_seg_t *rs, void *arg)
rt_btree_remove(range_tree_t *rt, range_seg_t *rs, void *arg)
rs_copy(range_seg_t *src, range_seg_t *dest, range_tree_t *rt)
rt_btree_vacate(range_tree_t *rt, void *arg)
range_tree_t *removefrom, range_tree_t *addto)
range_tree_remove_xor_add(range_tree_t *rt, range_tree_t *removefrom,
range_tree_t *addto)
range_tree_min(range_tree_t *rt)
range_tree_max(range_tree_t *rt)
range_tree_span(range_tree_t *rt)
range_tree_stat_verify(range_tree_t *rt)
range_tree_t *smla_rt;
space_map_load_length(space_map_t *sm, range_tree_t *rt, maptype_t maptype,
space_map_load(space_map_t *sm, range_tree_t *rt, maptype_t maptype)
space_map_histogram_verify(space_map_t *sm, range_tree_t *rt)
space_map_histogram_add(space_map_t *sm, range_tree_t *rt, dmu_tx_t *tx)
space_map_write_impl(space_map_t *sm, range_tree_t *rt, maptype_t maptype,
space_map_write(space_map_t *sm, range_tree_t *rt, maptype_t maptype,
space_map_estimate_optimal_size(space_map_t *sm, range_tree_t *rt,
space_reftree_add_map(avl_tree_t *t, range_tree_t *rt, int64_t refcnt)
space_reftree_generate_map(avl_tree_t *t, range_tree_t *rt, int64_t minref)
range_tree_t *ms_allocating[TXG_SIZE];
range_tree_t *ms_allocatable;
range_tree_t *ms_freeing; /* to free this syncing txg */
range_tree_t *ms_freed; /* already freed this syncing txg */
range_tree_t *ms_defer[TXG_DEFER_SIZE];
range_tree_t *ms_checkpointing; /* to add to the checkpoint */
range_tree_t *ms_trim;
range_tree_t *ms_unflushed_allocs;
range_tree_t *ms_unflushed_frees;
void (*rtop_create)(range_tree_t *rt, void *arg);
void (*rtop_destroy)(range_tree_t *rt, void *arg);
void (*rtop_add)(range_tree_t *rt, void *rs, void *arg);
void (*rtop_remove)(range_tree_t *rt, void *rs, void *arg);
void (*rtop_vacate)(range_tree_t *rt, void *arg);
rs_get_start_raw(const range_seg_t *rs, const range_tree_t *rt)
rs_get_end_raw(const range_seg_t *rs, const range_tree_t *rt)
rs_get_fill_raw(const range_seg_t *rs, const range_tree_t *rt)
rs_get_start(const range_seg_t *rs, const range_tree_t *rt)
rs_get_end(const range_seg_t *rs, const range_tree_t *rt)
rs_get_fill(const range_seg_t *rs, const range_tree_t *rt)
rs_set_start_raw(range_seg_t *rs, range_tree_t *rt, uint64_t start)
rs_set_end_raw(range_seg_t *rs, range_tree_t *rt, uint64_t end)
rs_set_fill_raw(range_seg_t *rs, range_tree_t *rt, uint64_t fill)
rs_set_start(range_seg_t *rs, range_tree_t *rt, uint64_t start)
rs_set_end(range_seg_t *rs, range_tree_t *rt, uint64_t end)
rs_set_fill(range_seg_t *rs, range_tree_t *rt, uint64_t fill)
range_tree_t *range_tree_create_impl(range_tree_ops_t *ops,
range_tree_t *range_tree_create(range_tree_ops_t *ops, range_seg_type_t type,
void range_tree_destroy(range_tree_t *rt);
boolean_t range_tree_contains(range_tree_t *rt, uint64_t start, uint64_t size);
range_seg_t *range_tree_find(range_tree_t *rt, uint64_t start, uint64_t size);
boolean_t range_tree_find_in(range_tree_t *rt, uint64_t start, uint64_t size,
void range_tree_verify_not_present(range_tree_t *rt,
void range_tree_resize_segment(range_tree_t *rt, range_seg_t *rs,
uint64_t range_tree_space(range_tree_t *rt);
uint64_t range_tree_numsegs(range_tree_t *rt);
boolean_t range_tree_is_empty(range_tree_t *rt);
void range_tree_swap(range_tree_t **rtsrc, range_tree_t **rtdst);
void range_tree_stat_verify(range_tree_t *rt);
uint64_t range_tree_min(range_tree_t *rt);
uint64_t range_tree_max(range_tree_t *rt);
uint64_t range_tree_span(range_tree_t *rt);
void range_tree_remove_fill(range_tree_t *rt, uint64_t start, uint64_t size);
void range_tree_adjust_fill(range_tree_t *rt, range_seg_t *rs, int64_t delta);
void range_tree_clear(range_tree_t *rt, uint64_t start, uint64_t size);
void range_tree_vacate(range_tree_t *rt, range_tree_func_t *func, void *arg);
void range_tree_walk(range_tree_t *rt, range_tree_func_t *func, void *arg);
range_seg_t *range_tree_first(range_tree_t *rt);
range_tree_t *removefrom, range_tree_t *addto);
void range_tree_remove_xor_add(range_tree_t *rt, range_tree_t *removefrom,
range_tree_t *addto);
void rt_btree_create(range_tree_t *rt, void *arg);
void rt_btree_destroy(range_tree_t *rt, void *arg);
void rt_btree_add(range_tree_t *rt, range_seg_t *rs, void *arg);
void rt_btree_remove(range_tree_t *rt, range_seg_t *rs, void *arg);
void rt_btree_vacate(range_tree_t *rt, void *arg);
int space_map_load(space_map_t *sm, range_tree_t *rt, maptype_t maptype);
int space_map_load_length(space_map_t *sm, range_tree_t *rt, maptype_t maptype,
boolean_t space_map_histogram_verify(space_map_t *sm, range_tree_t *rt);
void space_map_histogram_add(space_map_t *sm, range_tree_t *rt,
uint64_t space_map_entries(space_map_t *sm, range_tree_t *rt);
void space_map_write(space_map_t *sm, range_tree_t *rt, maptype_t maptype,
uint64_t space_map_estimate_optimal_size(space_map_t *sm, range_tree_t *rt,
void space_reftree_add_map(avl_tree_t *t, range_tree_t *rt, int64_t refcnt);
void space_reftree_generate_map(avl_tree_t *t, range_tree_t *rt,
range_tree_t *vdev_initialize_tree; /* valid while initializing */
range_tree_t *vdev_obsolete_segments;
range_tree_t *vdev_dtl[DTL_TYPES]; /* dirty time logs */
range_tree_t *svr_allocd_segs;
range_tree_t *svr_frees[TXG_SIZE];
range_tree_t *rt = vd->vdev_dtl[t];
range_tree_t *rt = vd->vdev_dtl[t];
range_tree_t *rt = vd->vdev_dtl[t];
range_tree_t *rt = vd->vdev_dtl[DTL_MISSING];
range_tree_t *rtsync;
range_tree_t *rt = vd->vdev_initialize_tree;
range_tree_t *rt = msp->ms_allocatable;
range_tree_t *segs = range_tree_create(NULL, RANGE_SEG64, NULL, 0, 0);
range_tree_t *rt = svr->svr_allocd_segs;
range_tree_t *vcsa_obsolete_segs;
spa_vdev_copy_segment(vdev_t *vd, range_tree_t *segs,
range_tree_t *obsolete_segs = range_tree_create(NULL, RANGE_SEG64, NULL,
range_tree_t *trim_tree;
range_tree_t *trim_tree; /* TRIM ranges (in metaslab) */
range_tree_t *rt = msp->ms_allocatable;