Lines Matching defs:cabd
128 for (abd_t *cabd = list_head(&ABD_GANG(abd).abd_gang_chain);
129 cabd != NULL;
130 cabd = list_next(&ABD_GANG(abd).abd_gang_chain, cabd)) {
131 ASSERT(list_link_active(&cabd->abd_gang_link));
132 child_sizes += cabd->abd_size;
133 abd_verify(cabd);
259 abd_t *cabd;
261 while ((cabd = list_head(&ABD_GANG(abd).abd_gang_chain)) != NULL) {
268 mutex_enter(&cabd->abd_mtx);
269 ASSERT(list_link_active(&cabd->abd_gang_link));
270 list_remove(&ABD_GANG(abd).abd_gang_chain, cabd);
271 mutex_exit(&cabd->abd_mtx);
272 if (cabd->abd_flags & ABD_FLAG_GANG_FREE)
273 abd_free(cabd);
364 abd_gang_add_gang(abd_t *pabd, abd_t *cabd, boolean_t free_on_free)
367 ASSERT(abd_is_gang(cabd));
380 * If cabd had abd_parent, we have to drop it here. We can't
383 if (cabd->abd_parent != NULL) {
385 &cabd->abd_parent->abd_children,
386 cabd->abd_size, cabd);
387 cabd->abd_parent = NULL;
390 pabd->abd_size += cabd->abd_size;
391 cabd->abd_size = 0;
393 &ABD_GANG(cabd).abd_gang_chain);
394 ASSERT(list_is_empty(&ABD_GANG(cabd).abd_gang_chain));
396 abd_free(cabd);
398 for (abd_t *child = list_head(&ABD_GANG(cabd).abd_gang_chain);
400 child = list_next(&ABD_GANG(cabd).abd_gang_chain, child)) {
417 abd_gang_add(abd_t *pabd, abd_t *cabd, boolean_t free_on_free)
427 if (abd_is_gang(cabd)) {
428 ASSERT(!list_link_active(&cabd->abd_gang_link));
429 return (abd_gang_add_gang(pabd, cabd, free_on_free));
431 ASSERT(!abd_is_gang(cabd));
441 mutex_enter(&cabd->abd_mtx);
442 if (list_link_active(&cabd->abd_gang_link)) {
470 child_abd = abd_get_offset(cabd, 0);
473 child_abd = cabd;
480 mutex_exit(&cabd->abd_mtx);
491 abd_t *cabd;
495 for (cabd = list_head(&ABD_GANG(abd).abd_gang_chain); cabd != NULL;
496 cabd = list_next(&ABD_GANG(abd).abd_gang_chain, cabd)) {
497 if (*off >= cabd->abd_size)
498 *off -= cabd->abd_size;
500 return (cabd);
502 VERIFY3P(cabd, !=, NULL);
503 return (cabd);
555 for (abd_t *cabd = abd_gang_get_offset(sabd, &off);
556 cabd != NULL && left > 0;
557 cabd = list_next(&ABD_GANG(sabd).abd_gang_chain, cabd)) {
558 int csize = MIN(left, cabd->abd_size - off);
560 abd_t *nabd = abd_get_offset_size(cabd, off, csize);
724 abd_t *cabd = NULL;
727 cabd = abd_gang_get_offset(abd, &off);
728 if (cabd) {
729 abd_iter_init(aiter, cabd);
736 return (cabd);
745 abd_advance_abd_iter(abd_t *abd, abd_t *cabd, struct abd_iter *aiter,
750 ASSERT3P(cabd, !=, NULL);
751 cabd = list_next(&ABD_GANG(abd).abd_gang_chain, cabd);
752 if (cabd) {
753 abd_iter_init(aiter, cabd);
757 return (cabd);