* BLST_LEAF_FREE() - free allocated block from leaf bitmap * */
| 859 | * |
| 860 | */ |
| 861 | static void |
| 862 | blst_leaf_free(blmeta_t *scan, daddr_t blk, int count) |
| 863 | { |
| 864 | u_daddr_t mask; |
| 865 | |
| 866 | /* |
| 867 | * free some data in this bitmap |
| 868 | * mask=0000111111111110000 |
| 869 | * \_________/\__/ |
| 870 | * count n |
| 871 | */ |
| 872 | mask = bitrange(blk & BLIST_MASK, count); |
| 873 | KASSERT((scan->bm_bitmap & mask) == 0, |
| 874 | ("freeing free block: %jx, size %d, mask %jx", |
| 875 | (uintmax_t)blk, count, (uintmax_t)scan->bm_bitmap & mask)); |
| 876 | scan->bm_bitmap |= mask; |
| 877 | } |
| 878 | |
| 879 | /* |
| 880 | * BLST_META_FREE() - free allocated blocks from radix tree meta info |
no test coverage detected