void bplist_sync(bplist_t *bpl, dmu_tx_t *tx) { bplist_q_t *bpq; mutex_enter(&bpl->bpl_lock); while ((bpq = bpl->bpl_queue) != NULL) { bpl->bpl_queue = bpq->bpq_next; mutex_exit(&bpl->bpl_lock); VERIFY(0 == bplist_enqueue(bpl, &bpq->bpq_blk, tx)); kmem_free(bpq, sizeof (*bpq)); mutex_enter(&bpl->bpl_lock); } mutex_exit(&bpl->bpl_lock); }
void bplist_enqueue_cb(void *bpl, const blkptr_t *bp, dmu_tx_t *tx) { VERIFY(bplist_enqueue(bpl, bp, tx) == 0); }