* Removes all pointers to the given extent from the global rtree. */
| 852 | * Removes all pointers to the given extent from the global rtree. |
| 853 | */ |
| 854 | static void |
| 855 | extent_deregister_impl(tsdn_t *tsdn, extent_t *extent, bool gdump) { |
| 856 | rtree_ctx_t rtree_ctx_fallback; |
| 857 | rtree_ctx_t *rtree_ctx = tsdn_rtree_ctx(tsdn, &rtree_ctx_fallback); |
| 858 | rtree_leaf_elm_t *elm_a, *elm_b; |
| 859 | extent_rtree_leaf_elms_lookup(tsdn, rtree_ctx, extent, true, false, |
| 860 | &elm_a, &elm_b); |
| 861 | |
| 862 | extent_lock(tsdn, extent); |
| 863 | |
| 864 | extent_rtree_write_acquired(tsdn, elm_a, elm_b, NULL, SC_NSIZES, false); |
| 865 | if (extent_slab_get(extent)) { |
| 866 | extent_interior_deregister(tsdn, rtree_ctx, extent); |
| 867 | extent_slab_set(extent, false); |
| 868 | } |
| 869 | |
| 870 | extent_unlock(tsdn, extent); |
| 871 | |
| 872 | if (config_prof && gdump) { |
| 873 | extent_gdump_sub(tsdn, extent); |
| 874 | } |
| 875 | } |
| 876 | |
| 877 | static void |
| 878 | extent_deregister(tsdn_t *tsdn, extent_t *extent) { |
no test coverage detected