Lines Matching refs:bpi

249 	bpobj_info_t *bpi = kmem_zalloc(sizeof (bpobj_info_t), KM_SLEEP);  in bpi_alloc()  local
250 bpi->bpi_bpo = bpo; in bpi_alloc()
251 bpi->bpi_parent = parent; in bpi_alloc()
252 bpi->bpi_index = index; in bpi_alloc()
254 bpi->bpi_unprocessed_subobjs = bpo->bpo_phys->bpo_num_subobjs; in bpi_alloc()
256 return (bpi); in bpi_alloc()
263 propagate_space_reduction(bpobj_info_t *bpi, int64_t freed, in propagate_space_reduction() argument
267 for (; bpi != NULL; bpi = bpi->bpi_parent) { in propagate_space_reduction()
268 bpobj_t *p = bpi->bpi_bpo; in propagate_space_reduction()
280 bpobj_iterate_blkptrs(bpobj_info_t *bpi, bpobj_itor_t func, void *arg, in bpobj_iterate_blkptrs() argument
286 bpobj_t *bpo = bpi->bpi_bpo; in bpobj_iterate_blkptrs()
346 propagate_space_reduction(bpi, freed, comp_freed, in bpobj_iterate_blkptrs()
374 bpobj_info_t *bpi; in bpobj_iterate_impl() local
390 while ((bpi = list_head(&stack)) != NULL) { in bpobj_iterate_impl()
391 bpobj_t *bpo = bpi->bpi_bpo; in bpobj_iterate_impl()
400 if (bpi->bpi_visited == B_FALSE) { in bpobj_iterate_impl()
401 err = bpobj_iterate_blkptrs(bpi, func, arg, 0, tx, in bpobj_iterate_impl()
403 bpi->bpi_visited = B_TRUE; in bpobj_iterate_impl()
413 if (bpi->bpi_unprocessed_subobjs == 0) { in bpobj_iterate_impl()
425 if (bpi->bpi_parent != NULL) { in bpobj_iterate_impl()
427 bpobj_t *p = bpi->bpi_parent->bpi_bpo; in bpobj_iterate_impl()
432 ASSERT3U(bpi->bpi_index, ==, in bpobj_iterate_impl()
441 bpi->bpi_index * sizeof (uint64_t), in bpobj_iterate_impl()
475 kmem_free(bpi, sizeof (bpobj_info_t)); in bpobj_iterate_impl()
484 int64_t i = bpi->bpi_unprocessed_subobjs - 1; in bpobj_iterate_impl()
509 list_insert_head(&stack, bpi_alloc(subbpo, bpi, i)); in bpobj_iterate_impl()
511 bpi->bpi_unprocessed_subobjs--; in bpobj_iterate_impl()
519 while ((bpi = list_remove_head(&stack)) != NULL) { in bpobj_iterate_impl()
520 bpobj_t *bpo = bpi->bpi_bpo; in bpobj_iterate_impl()
527 if (bpi->bpi_parent != NULL) { in bpobj_iterate_impl()
528 bpobj_close(bpi->bpi_bpo); in bpobj_iterate_impl()
529 kmem_free(bpi->bpi_bpo, sizeof (bpobj_t)); in bpobj_iterate_impl()
531 kmem_free(bpi, sizeof (bpobj_info_t)); in bpobj_iterate_impl()
581 bpobj_info_t *bpi = bpi_alloc(bpo, NULL, 0); in livelist_bpobj_iterate_from_nofree() local
582 int err = bpobj_iterate_blkptrs(bpi, func, arg, start, NULL, B_FALSE); in livelist_bpobj_iterate_from_nofree()
583 kmem_free(bpi, sizeof (bpobj_info_t)); in livelist_bpobj_iterate_from_nofree()