Lines Matching refs:rs

101 	range_seg_t *rs;  in range_tree_stat_verify()  local
106 for (rs = zfs_btree_first(&rt->rt_root, &where); rs != NULL; in range_tree_stat_verify()
107 rs = zfs_btree_next(&rt->rt_root, &where, &where)) { in range_tree_stat_verify()
108 uint64_t size = rs_get_end(rs, rt) - rs_get_start(rs, rt); in range_tree_stat_verify()
125 range_tree_stat_incr(range_tree_t *rt, range_seg_t *rs) in range_tree_stat_incr() argument
127 uint64_t size = rs_get_end(rs, rt) - rs_get_start(rs, rt); in range_tree_stat_incr()
139 range_tree_stat_decr(range_tree_t *rt, range_seg_t *rs) in range_tree_stat_decr() argument
141 uint64_t size = rs_get_end(rs, rt) - rs_get_start(rs, rt); in range_tree_stat_decr()
252 range_tree_adjust_fill(range_tree_t *rt, range_seg_t *rs, int64_t delta) in range_tree_adjust_fill() argument
254 ASSERT3U(rs_get_fill(rs, rt) + delta, !=, 0); in range_tree_adjust_fill()
255 ASSERT3U(rs_get_fill(rs, rt) + delta, <=, rs_get_end(rs, rt) - in range_tree_adjust_fill()
256 rs_get_start(rs, rt)); in range_tree_adjust_fill()
259 rt->rt_ops->rtop_remove(rt, rs, rt->rt_arg); in range_tree_adjust_fill()
260 rs_set_fill(rs, rt, rs_get_fill(rs, rt) + delta); in range_tree_adjust_fill()
262 rt->rt_ops->rtop_add(rt, rs, rt->rt_arg); in range_tree_adjust_fill()
270 range_seg_t *rs_before, *rs_after, *rs; in range_tree_add_impl() local
282 rs = zfs_btree_find(&rt->rt_root, &rsearch, &where); in range_tree_add_impl()
292 if (rs != NULL) { in range_tree_add_impl()
294 uint64_t rstart = rs_get_start(rs, rt); in range_tree_add_impl()
295 uint64_t rend = rs_get_end(rs, rt); in range_tree_add_impl()
298 range_tree_adjust_fill(rt, rs, fill); in range_tree_add_impl()
302 zfs_btree_remove(&rt->rt_root, rs); in range_tree_add_impl()
304 rt->rt_ops->rtop_remove(rt, rs, rt->rt_arg); in range_tree_add_impl()
306 range_tree_stat_decr(rt, rs); in range_tree_add_impl()
309 fill += rs_get_fill(rs, rt); in range_tree_add_impl()
318 ASSERT3P(rs, ==, NULL); in range_tree_add_impl()
361 rs = rs_after; in range_tree_add_impl()
371 rs = rs_before; in range_tree_add_impl()
381 rs = rs_after; in range_tree_add_impl()
383 rs = &tmp; in range_tree_add_impl()
385 rs_set_start(rs, rt, start); in range_tree_add_impl()
386 rs_set_end(rs, rt, end); in range_tree_add_impl()
387 rs_set_fill(rs, rt, fill); in range_tree_add_impl()
388 zfs_btree_add_idx(&rt->rt_root, rs, &where); in range_tree_add_impl()
392 ASSERT3U(rs_get_fill(rs, rt), <=, rs_get_end(rs, rt) - in range_tree_add_impl()
393 rs_get_start(rs, rt)); in range_tree_add_impl()
395 ASSERT3U(rs_get_fill(rs, rt), ==, rs_get_end(rs, rt) - in range_tree_add_impl()
396 rs_get_start(rs, rt)); in range_tree_add_impl()
400 rt->rt_ops->rtop_add(rt, rs, rt->rt_arg); in range_tree_add_impl()
402 range_tree_stat_incr(rt, rs); in range_tree_add_impl()
417 range_seg_t *rs; in range_tree_remove_impl() local
429 rs = zfs_btree_find(&rt->rt_root, &rsearch, &where); in range_tree_remove_impl()
432 if (rs == NULL) { in range_tree_remove_impl()
447 if (rs_get_fill(rs, rt) == size) { in range_tree_remove_impl()
448 start = rs_get_start(rs, rt); in range_tree_remove_impl()
449 end = rs_get_end(rs, rt); in range_tree_remove_impl()
452 range_tree_adjust_fill(rt, rs, -size); in range_tree_remove_impl()
455 } else if (rs_get_start(rs, rt) != start || in range_tree_remove_impl()
456 rs_get_end(rs, rt) != end) { in range_tree_remove_impl()
461 (longlong_t)rs_get_start(rs, rt), in range_tree_remove_impl()
462 (longlong_t)rs_get_end(rs, rt) - rs_get_start(rs, in range_tree_remove_impl()
468 VERIFY3U(rs_get_start(rs, rt), <=, start); in range_tree_remove_impl()
469 VERIFY3U(rs_get_end(rs, rt), >=, end); in range_tree_remove_impl()
471 left_over = (rs_get_start(rs, rt) != start); in range_tree_remove_impl()
472 right_over = (rs_get_end(rs, rt) != end); in range_tree_remove_impl()
474 range_tree_stat_decr(rt, rs); in range_tree_remove_impl()
477 rt->rt_ops->rtop_remove(rt, rs, rt->rt_arg); in range_tree_remove_impl()
482 rs_set_end_raw(&newseg, rt, rs_get_end_raw(rs, rt)); in range_tree_remove_impl()
483 rs_set_fill(&newseg, rt, rs_get_end(rs, rt) - end); in range_tree_remove_impl()
487 rs_set_end(rs, rt, start); in range_tree_remove_impl()
489 rs_copy(rs, &rs_tmp, rt); in range_tree_remove_impl()
499 rs_set_end(rs, rt, start); in range_tree_remove_impl()
500 rs_copy(rs, &rs_tmp, rt); in range_tree_remove_impl()
503 rs_set_start(rs, rt, end); in range_tree_remove_impl()
504 rs_copy(rs, &rs_tmp, rt); in range_tree_remove_impl()
507 rs = NULL; in range_tree_remove_impl()
510 if (rs != NULL) { in range_tree_remove_impl()
516 rs_set_fill_raw(rs, rt, rs_get_end_raw(rs, rt) - in range_tree_remove_impl()
517 rs_get_start_raw(rs, rt)); in range_tree_remove_impl()
540 range_tree_resize_segment(range_tree_t *rt, range_seg_t *rs, in range_tree_resize_segment() argument
543 int64_t delta = newsize - (rs_get_end(rs, rt) - rs_get_start(rs, rt)); in range_tree_resize_segment()
545 range_tree_stat_decr(rt, rs); in range_tree_resize_segment()
547 rt->rt_ops->rtop_remove(rt, rs, rt->rt_arg); in range_tree_resize_segment()
549 rs_set_start(rs, rt, newstart); in range_tree_resize_segment()
550 rs_set_end(rs, rt, newstart + newsize); in range_tree_resize_segment()
552 range_tree_stat_incr(rt, rs); in range_tree_resize_segment()
554 rt->rt_ops->rtop_add(rt, rs, rt->rt_arg); in range_tree_resize_segment()
578 range_seg_t *rs = range_tree_find_impl(rt, start, size); in range_tree_find() local
579 if (rs != NULL && rs_get_start(rs, rt) <= start && in range_tree_find()
580 rs_get_end(rs, rt) >= start + size) { in range_tree_find()
581 return (rs); in range_tree_find()
589 range_seg_t *rs = range_tree_find(rt, off, size); in range_tree_verify_not_present() local
590 if (rs != NULL) in range_tree_verify_not_present()
591 panic("segment already in tree; rs=%p", (void *)rs); in range_tree_verify_not_present()
617 range_seg_t *rs = zfs_btree_find(&rt->rt_root, &rsearch, &where); in range_tree_find_in() local
618 if (rs != NULL) { in range_tree_find_in()
620 *osize = MIN(size, rs_get_end(rs, rt) - start); in range_tree_find_in()
624 rs = zfs_btree_next(&rt->rt_root, &where, &where); in range_tree_find_in()
625 if (rs == NULL || rs_get_start(rs, rt) > start + size) in range_tree_find_in()
628 *ostart = rs_get_start(rs, rt); in range_tree_find_in()
629 *osize = MIN(start + size, rs_get_end(rs, rt)) - in range_tree_find_in()
630 rs_get_start(rs, rt); in range_tree_find_in()
641 range_seg_t *rs; in range_tree_clear() local
649 while ((rs = range_tree_find_impl(rt, start, size)) != NULL) { in range_tree_clear()
650 uint64_t free_start = MAX(rs_get_start(rs, rt), start); in range_tree_clear()
651 uint64_t free_end = MIN(rs_get_end(rs, rt), start + size); in range_tree_clear()
677 range_seg_t *rs; in range_tree_vacate() local
680 while ((rs = zfs_btree_destroy_nodes(&rt->rt_root, &cookie)) != in range_tree_vacate()
682 func(arg, rs_get_start(rs, rt), rs_get_end(rs, rt) - in range_tree_vacate()
683 rs_get_start(rs, rt)); in range_tree_vacate()
697 for (range_seg_t *rs = zfs_btree_first(&rt->rt_root, &where); in range_tree_walk() local
698 rs != NULL; rs = zfs_btree_next(&rt->rt_root, &where, &where)) { in range_tree_walk()
699 func(arg, rs_get_start(rs, rt), rs_get_end(rs, rt) - in range_tree_walk()
700 rs_get_start(rs, rt)); in range_tree_walk()
764 rt_btree_add(range_tree_t *rt, range_seg_t *rs, void *arg) in rt_btree_add() argument
768 zfs_btree_add(size_tree, rs); in rt_btree_add()
773 rt_btree_remove(range_tree_t *rt, range_seg_t *rs, void *arg) in rt_btree_remove() argument
777 zfs_btree_remove(size_tree, rs); in rt_btree_remove()
837 range_seg_max_t rs; in range_tree_remove_xor_add_segment() local
838 rs_copy(curr, &rs, removefrom); in range_tree_remove_xor_add_segment()
846 next = zfs_btree_find(&removefrom->rt_root, &rs, &where); in range_tree_remove_xor_add_segment()
858 ASSERT(start == end || start == rs_get_end(&rs, in range_tree_remove_xor_add_segment()
883 for (range_seg_t *rs = zfs_btree_first(&rt->rt_root, &where); rs; in range_tree_remove_xor_add() local
884 rs = zfs_btree_next(&rt->rt_root, &where, &where)) { in range_tree_remove_xor_add()
885 range_tree_remove_xor_add_segment(rs_get_start(rs, rt), in range_tree_remove_xor_add()
886 rs_get_end(rs, rt), removefrom, addto); in range_tree_remove_xor_add()
893 range_seg_t *rs = zfs_btree_first(&rt->rt_root, NULL); in range_tree_min() local
894 return (rs != NULL ? rs_get_start(rs, rt) : 0); in range_tree_min()
900 range_seg_t *rs = zfs_btree_last(&rt->rt_root, NULL); in range_tree_max() local
901 return (rs != NULL ? rs_get_end(rs, rt) : 0); in range_tree_max()