Lines Matching refs:cabd
129 for (abd_t *cabd = list_head(&ABD_GANG(abd).abd_gang_chain); in abd_verify() local
130 cabd != NULL; in abd_verify()
131 cabd = list_next(&ABD_GANG(abd).abd_gang_chain, cabd)) { in abd_verify()
132 ASSERT(list_link_active(&cabd->abd_gang_link)); in abd_verify()
133 child_sizes += cabd->abd_size; in abd_verify()
134 abd_verify(cabd); in abd_verify()
260 abd_t *cabd; in abd_free_gang() local
262 while ((cabd = list_head(&ABD_GANG(abd).abd_gang_chain)) != NULL) { in abd_free_gang()
269 mutex_enter(&cabd->abd_mtx); in abd_free_gang()
270 ASSERT(list_link_active(&cabd->abd_gang_link)); in abd_free_gang()
271 list_remove(&ABD_GANG(abd).abd_gang_chain, cabd); in abd_free_gang()
272 mutex_exit(&cabd->abd_mtx); in abd_free_gang()
273 if (cabd->abd_flags & ABD_FLAG_GANG_FREE) in abd_free_gang()
274 abd_free(cabd); in abd_free_gang()
365 abd_gang_add_gang(abd_t *pabd, abd_t *cabd, boolean_t free_on_free) in abd_gang_add_gang() argument
368 ASSERT(abd_is_gang(cabd)); in abd_gang_add_gang()
384 if (cabd->abd_parent != NULL) { in abd_gang_add_gang()
386 &cabd->abd_parent->abd_children, in abd_gang_add_gang()
387 cabd->abd_size, cabd); in abd_gang_add_gang()
388 cabd->abd_parent = NULL; in abd_gang_add_gang()
391 pabd->abd_size += cabd->abd_size; in abd_gang_add_gang()
392 cabd->abd_size = 0; in abd_gang_add_gang()
394 &ABD_GANG(cabd).abd_gang_chain); in abd_gang_add_gang()
395 ASSERT(list_is_empty(&ABD_GANG(cabd).abd_gang_chain)); in abd_gang_add_gang()
397 abd_free(cabd); in abd_gang_add_gang()
399 for (abd_t *child = list_head(&ABD_GANG(cabd).abd_gang_chain); in abd_gang_add_gang()
401 child = list_next(&ABD_GANG(cabd).abd_gang_chain, child)) { in abd_gang_add_gang()
418 abd_gang_add(abd_t *pabd, abd_t *cabd, boolean_t free_on_free) in abd_gang_add() argument
428 if (abd_is_gang(cabd)) { in abd_gang_add()
429 ASSERT(!list_link_active(&cabd->abd_gang_link)); in abd_gang_add()
430 return (abd_gang_add_gang(pabd, cabd, free_on_free)); in abd_gang_add()
432 ASSERT(!abd_is_gang(cabd)); in abd_gang_add()
442 mutex_enter(&cabd->abd_mtx); in abd_gang_add()
443 if (list_link_active(&cabd->abd_gang_link)) { in abd_gang_add()
471 child_abd = abd_get_offset(cabd, 0); in abd_gang_add()
474 child_abd = cabd; in abd_gang_add()
481 mutex_exit(&cabd->abd_mtx); in abd_gang_add()
492 abd_t *cabd; in abd_gang_get_offset() local
496 for (cabd = list_head(&ABD_GANG(abd).abd_gang_chain); cabd != NULL; in abd_gang_get_offset()
497 cabd = list_next(&ABD_GANG(abd).abd_gang_chain, cabd)) { in abd_gang_get_offset()
498 if (*off >= cabd->abd_size) in abd_gang_get_offset()
499 *off -= cabd->abd_size; in abd_gang_get_offset()
501 return (cabd); in abd_gang_get_offset()
503 VERIFY3P(cabd, !=, NULL); in abd_gang_get_offset()
504 return (cabd); in abd_gang_get_offset()
556 for (abd_t *cabd = abd_gang_get_offset(sabd, &off); in abd_get_offset_impl() local
557 cabd != NULL && left > 0; in abd_get_offset_impl()
558 cabd = list_next(&ABD_GANG(sabd).abd_gang_chain, cabd)) { in abd_get_offset_impl()
559 int csize = MIN(left, cabd->abd_size - off); in abd_get_offset_impl()
561 abd_t *nabd = abd_get_offset_size(cabd, off, csize); in abd_get_offset_impl()
725 abd_t *cabd = NULL; in abd_init_abd_iter() local
728 cabd = abd_gang_get_offset(abd, &off); in abd_init_abd_iter()
729 if (cabd) { in abd_init_abd_iter()
730 abd_iter_init(aiter, cabd); in abd_init_abd_iter()
737 return (cabd); in abd_init_abd_iter()
746 abd_advance_abd_iter(abd_t *abd, abd_t *cabd, struct abd_iter *aiter, in abd_advance_abd_iter() argument
751 ASSERT3P(cabd, !=, NULL); in abd_advance_abd_iter()
752 cabd = list_next(&ABD_GANG(abd).abd_gang_chain, cabd); in abd_advance_abd_iter()
753 if (cabd) { in abd_advance_abd_iter()
754 abd_iter_init(aiter, cabd); in abd_advance_abd_iter()
758 return (cabd); in abd_advance_abd_iter()