Lines Matching full:rs
103 zfs_range_seg_t *rs; in zfs_range_tree_stat_verify() local
108 for (rs = zfs_btree_first(&rt->rt_root, &where); rs != NULL; in zfs_range_tree_stat_verify()
109 rs = zfs_btree_next(&rt->rt_root, &where, &where)) { in zfs_range_tree_stat_verify()
110 uint64_t size = zfs_rs_get_end(rs, rt) - in zfs_range_tree_stat_verify()
111 zfs_rs_get_start(rs, rt); in zfs_range_tree_stat_verify()
129 zfs_range_tree_stat_incr(zfs_range_tree_t *rt, zfs_range_seg_t *rs) in zfs_range_tree_stat_incr() argument
131 uint64_t size = zfs_rs_get_end(rs, rt) - zfs_rs_get_start(rs, rt); in zfs_range_tree_stat_incr()
143 zfs_range_tree_stat_decr(zfs_range_tree_t *rt, zfs_range_seg_t *rs) in zfs_range_tree_stat_decr() argument
145 uint64_t size = zfs_rs_get_end(rs, rt) - zfs_rs_get_start(rs, rt); in zfs_range_tree_stat_decr()
270 zfs_range_tree_adjust_fill(zfs_range_tree_t *rt, zfs_range_seg_t *rs, in zfs_range_tree_adjust_fill() argument
273 if (delta < 0 && delta * -1 >= zfs_rs_get_fill(rs, rt)) { in zfs_range_tree_adjust_fill()
276 (longlong_t)zfs_rs_get_start(rs, rt), in zfs_range_tree_adjust_fill()
277 (longlong_t)zfs_rs_get_end(rs, rt)); in zfs_range_tree_adjust_fill()
279 if (zfs_rs_get_fill(rs, rt) + delta > zfs_rs_get_end(rs, rt) - in zfs_range_tree_adjust_fill()
280 zfs_rs_get_start(rs, rt)) { in zfs_range_tree_adjust_fill()
283 (longlong_t)zfs_rs_get_start(rs, rt), in zfs_range_tree_adjust_fill()
284 (longlong_t)zfs_rs_get_end(rs, rt)); in zfs_range_tree_adjust_fill()
288 rt->rt_ops->rtop_remove(rt, rs, rt->rt_arg); in zfs_range_tree_adjust_fill()
289 zfs_rs_set_fill(rs, rt, zfs_rs_get_fill(rs, rt) + delta); in zfs_range_tree_adjust_fill()
291 rt->rt_ops->rtop_add(rt, rs, rt->rt_arg); in zfs_range_tree_adjust_fill()
299 zfs_range_seg_t *rs_before, *rs_after, *rs; in zfs_range_tree_add_impl() local
311 rs = zfs_btree_find(&rt->rt_root, &rsearch, &where); in zfs_range_tree_add_impl()
321 if (rs != NULL) { in zfs_range_tree_add_impl()
328 uint64_t rstart = zfs_rs_get_start(rs, rt); in zfs_range_tree_add_impl()
329 uint64_t rend = zfs_rs_get_end(rs, rt); in zfs_range_tree_add_impl()
331 zfs_range_tree_adjust_fill(rt, rs, fill); in zfs_range_tree_add_impl()
336 rt->rt_ops->rtop_remove(rt, rs, rt->rt_arg); in zfs_range_tree_add_impl()
338 zfs_range_tree_stat_decr(rt, rs); in zfs_range_tree_add_impl()
341 fill += zfs_rs_get_fill(rs, rt); in zfs_range_tree_add_impl()
346 zfs_btree_remove(&rt->rt_root, rs); in zfs_range_tree_add_impl()
351 ASSERT3P(rs, ==, NULL); in zfs_range_tree_add_impl()
395 rs = rs_after; in zfs_range_tree_add_impl()
405 rs = rs_before; in zfs_range_tree_add_impl()
415 rs = rs_after; in zfs_range_tree_add_impl()
417 rs = &tmp; in zfs_range_tree_add_impl()
419 zfs_rs_set_start(rs, rt, start); in zfs_range_tree_add_impl()
420 zfs_rs_set_end(rs, rt, end); in zfs_range_tree_add_impl()
421 zfs_rs_set_fill(rs, rt, fill); in zfs_range_tree_add_impl()
422 zfs_btree_add_idx(&rt->rt_root, rs, &where); in zfs_range_tree_add_impl()
426 ASSERT3U(zfs_rs_get_fill(rs, rt), <=, zfs_rs_get_end(rs, rt) - in zfs_range_tree_add_impl()
427 zfs_rs_get_start(rs, rt)); in zfs_range_tree_add_impl()
429 ASSERT3U(zfs_rs_get_fill(rs, rt), ==, zfs_rs_get_end(rs, rt) - in zfs_range_tree_add_impl()
430 zfs_rs_get_start(rs, rt)); in zfs_range_tree_add_impl()
434 rt->rt_ops->rtop_add(rt, rs, rt->rt_arg); in zfs_range_tree_add_impl()
436 zfs_range_tree_stat_incr(rt, rs); in zfs_range_tree_add_impl()
451 zfs_range_seg_t *rs; in zfs_range_tree_remove_impl() local
463 rs = zfs_btree_find(&rt->rt_root, &rsearch, &where); in zfs_range_tree_remove_impl()
466 if (rs == NULL) { in zfs_range_tree_remove_impl()
481 if (zfs_rs_get_fill(rs, rt) == size) { in zfs_range_tree_remove_impl()
482 start = zfs_rs_get_start(rs, rt); in zfs_range_tree_remove_impl()
483 end = zfs_rs_get_end(rs, rt); in zfs_range_tree_remove_impl()
486 zfs_range_tree_adjust_fill(rt, rs, -size); in zfs_range_tree_remove_impl()
489 } else if (zfs_rs_get_start(rs, rt) != start || in zfs_range_tree_remove_impl()
490 zfs_rs_get_end(rs, rt) != end) { in zfs_range_tree_remove_impl()
495 (longlong_t)zfs_rs_get_start(rs, rt), in zfs_range_tree_remove_impl()
496 (longlong_t)zfs_rs_get_end(rs, rt) - in zfs_range_tree_remove_impl()
497 zfs_rs_get_start(rs, rt)); in zfs_range_tree_remove_impl()
502 VERIFY3U(zfs_rs_get_start(rs, rt), <=, start); in zfs_range_tree_remove_impl()
503 VERIFY3U(zfs_rs_get_end(rs, rt), >=, end); in zfs_range_tree_remove_impl()
505 left_over = (zfs_rs_get_start(rs, rt) != start); in zfs_range_tree_remove_impl()
506 right_over = (zfs_rs_get_end(rs, rt) != end); in zfs_range_tree_remove_impl()
508 zfs_range_tree_stat_decr(rt, rs); in zfs_range_tree_remove_impl()
511 rt->rt_ops->rtop_remove(rt, rs, rt->rt_arg); in zfs_range_tree_remove_impl()
516 zfs_rs_set_end_raw(&newseg, rt, zfs_rs_get_end_raw(rs, rt)); in zfs_range_tree_remove_impl()
517 zfs_rs_set_fill(&newseg, rt, zfs_rs_get_end(rs, rt) - end); in zfs_range_tree_remove_impl()
521 zfs_rs_set_end(rs, rt, start); in zfs_range_tree_remove_impl()
523 zfs_rs_copy(rs, &rs_tmp, rt); in zfs_range_tree_remove_impl()
533 zfs_rs_set_end(rs, rt, start); in zfs_range_tree_remove_impl()
534 zfs_rs_copy(rs, &rs_tmp, rt); in zfs_range_tree_remove_impl()
537 zfs_rs_set_start(rs, rt, end); in zfs_range_tree_remove_impl()
538 zfs_rs_copy(rs, &rs_tmp, rt); in zfs_range_tree_remove_impl()
541 rs = NULL; in zfs_range_tree_remove_impl()
544 if (rs != NULL) { in zfs_range_tree_remove_impl()
550 zfs_zfs_rs_set_fill_raw(rs, rt, zfs_rs_get_end_raw(rs, rt) - in zfs_range_tree_remove_impl()
551 zfs_rs_get_start_raw(rs, rt)); in zfs_range_tree_remove_impl()
574 zfs_range_tree_resize_segment(zfs_range_tree_t *rt, zfs_range_seg_t *rs, in zfs_range_tree_resize_segment() argument
577 int64_t delta = newsize - (zfs_rs_get_end(rs, rt) - in zfs_range_tree_resize_segment()
578 zfs_rs_get_start(rs, rt)); in zfs_range_tree_resize_segment()
580 zfs_range_tree_stat_decr(rt, rs); in zfs_range_tree_resize_segment()
582 rt->rt_ops->rtop_remove(rt, rs, rt->rt_arg); in zfs_range_tree_resize_segment()
584 zfs_rs_set_start(rs, rt, newstart); in zfs_range_tree_resize_segment()
585 zfs_rs_set_end(rs, rt, newstart + newsize); in zfs_range_tree_resize_segment()
587 zfs_range_tree_stat_incr(rt, rs); in zfs_range_tree_resize_segment()
589 rt->rt_ops->rtop_add(rt, rs, rt->rt_arg); in zfs_range_tree_resize_segment()
613 zfs_range_seg_t *rs = zfs_range_tree_find_impl(rt, start, size); in zfs_range_tree_find() local
614 if (rs != NULL && zfs_rs_get_start(rs, rt) <= start && in zfs_range_tree_find()
615 zfs_rs_get_end(rs, rt) >= start + size) { in zfs_range_tree_find()
616 return (rs); in zfs_range_tree_find()
625 zfs_range_seg_t *rs = zfs_range_tree_find(rt, off, size); in zfs_range_tree_verify_not_present() local
626 if (rs != NULL) in zfs_range_tree_verify_not_present()
627 panic("segment already in tree; rs=%p", (void *)rs); in zfs_range_tree_verify_not_present()
654 zfs_range_seg_t *rs = zfs_btree_find(&rt->rt_root, &rsearch, &where); in zfs_range_tree_find_in() local
655 if (rs != NULL) { in zfs_range_tree_find_in()
657 *osize = MIN(size, zfs_rs_get_end(rs, rt) - start); in zfs_range_tree_find_in()
661 rs = zfs_btree_next(&rt->rt_root, &where, &where); in zfs_range_tree_find_in()
662 if (rs == NULL || zfs_rs_get_start(rs, rt) >= start + size) in zfs_range_tree_find_in()
665 *ostart = zfs_rs_get_start(rs, rt); in zfs_range_tree_find_in()
666 *osize = MIN(start + size, zfs_rs_get_end(rs, rt)) - in zfs_range_tree_find_in()
667 zfs_rs_get_start(rs, rt); in zfs_range_tree_find_in()
678 zfs_range_seg_t *rs; in zfs_range_tree_clear() local
686 while ((rs = zfs_range_tree_find_impl(rt, start, size)) != NULL) { in zfs_range_tree_clear()
687 uint64_t free_start = MAX(zfs_rs_get_start(rs, rt), start); in zfs_range_tree_clear()
688 uint64_t free_end = MIN(zfs_rs_get_end(rs, rt), start + size); in zfs_range_tree_clear()
714 zfs_range_seg_t *rs; in zfs_range_tree_vacate() local
717 while ((rs = zfs_btree_destroy_nodes(&rt->rt_root, &cookie)) != in zfs_range_tree_vacate()
719 func(arg, zfs_rs_get_start(rs, rt), in zfs_range_tree_vacate()
720 zfs_rs_get_end(rs, rt) - zfs_rs_get_start(rs, rt)); in zfs_range_tree_vacate()
735 for (zfs_range_seg_t *rs = zfs_btree_first(&rt->rt_root, &where); in zfs_range_tree_walk() local
736 rs != NULL; rs = zfs_btree_next(&rt->rt_root, &where, &where)) { in zfs_range_tree_walk()
737 func(arg, zfs_rs_get_start(rs, rt), zfs_rs_get_end(rs, rt) - in zfs_range_tree_walk()
738 zfs_rs_get_start(rs, rt)); in zfs_range_tree_walk()
805 zfs_range_seg_max_t rs; in zfs_range_tree_remove_xor_add_segment() local
806 zfs_rs_copy(curr, &rs, removefrom); in zfs_range_tree_remove_xor_add_segment()
814 next = zfs_btree_find(&removefrom->rt_root, &rs, &where); in zfs_range_tree_remove_xor_add_segment()
826 ASSERT(start == end || start == zfs_rs_get_end(&rs, in zfs_range_tree_remove_xor_add_segment()
851 for (zfs_range_seg_t *rs = zfs_btree_first(&rt->rt_root, &where); rs; in zfs_range_tree_remove_xor_add() local
852 rs = zfs_btree_next(&rt->rt_root, &where, &where)) { in zfs_range_tree_remove_xor_add()
853 zfs_range_tree_remove_xor_add_segment(zfs_rs_get_start(rs, rt), in zfs_range_tree_remove_xor_add()
854 zfs_rs_get_end(rs, rt), removefrom, addto); in zfs_range_tree_remove_xor_add()
861 zfs_range_seg_t *rs = zfs_btree_first(&rt->rt_root, NULL); in zfs_range_tree_min() local
862 return (rs != NULL ? zfs_rs_get_start(rs, rt) : 0); in zfs_range_tree_min()
868 zfs_range_seg_t *rs = zfs_btree_last(&rt->rt_root, NULL); in zfs_range_tree_max() local
869 return (rs != NULL ? zfs_rs_get_end(rs, rt) : 0); in zfs_range_tree_max()