Lines Matching defs:gn
2725 zio_read_gang(zio_t *pio, blkptr_t *bp, zio_gang_node_t *gn, abd_t *data,
2728 if (gn != NULL)
2738 zio_rewrite_gang(zio_t *pio, blkptr_t *bp, zio_gang_node_t *gn, abd_t *data,
2743 if (gn != NULL) {
2745 abd_get_from_buf(gn->gn_gbh, SPA_GANGBLOCKSIZE);
2759 if (gn != pio->io_gang_leader->io_gang_tree) {
2784 zio_free_gang(zio_t *pio, blkptr_t *bp, zio_gang_node_t *gn, abd_t *data,
2787 (void) gn, (void) data, (void) offset;
2799 zio_claim_gang(zio_t *pio, blkptr_t *bp, zio_gang_node_t *gn, abd_t *data,
2802 (void) gn, (void) data, (void) offset;
2821 zio_gang_node_t *gn;
2825 gn = kmem_zalloc(sizeof (*gn), KM_SLEEP);
2826 gn->gn_gbh = zio_buf_alloc(SPA_GANGBLOCKSIZE);
2827 *gnpp = gn;
2829 return (gn);
2835 zio_gang_node_t *gn = *gnpp;
2838 ASSERT(gn->gn_child[g] == NULL);
2840 zio_buf_free(gn->gn_gbh, SPA_GANGBLOCKSIZE);
2841 kmem_free(gn, sizeof (*gn));
2848 zio_gang_node_t *gn = *gnpp;
2850 if (gn == NULL)
2854 zio_gang_tree_free(&gn->gn_child[g]);
2862 zio_gang_node_t *gn = zio_gang_node_alloc(gnpp);
2863 abd_t *gbh_abd = abd_get_from_buf(gn->gn_gbh, SPA_GANGBLOCKSIZE);
2869 zio_gang_tree_assemble_done, gn, gio->io_priority,
2877 zio_gang_node_t *gn = zio->io_private;
2890 ASSERT3P(abd_to_buf(zio->io_abd), ==, gn->gn_gbh);
2892 ASSERT(gn->gn_gbh->zg_tail.zec_magic == ZEC_MAGIC);
2897 blkptr_t *gbp = &gn->gn_gbh->zg_blkptr[g];
2900 zio_gang_tree_assemble(gio, gbp, &gn->gn_child[g]);
2905 zio_gang_tree_issue(zio_t *pio, zio_gang_node_t *gn, blkptr_t *bp, abd_t *data,
2911 ASSERT(BP_IS_GANG(bp) == !!gn);
2913 ASSERT(BP_GET_LSIZE(bp) == BP_GET_PSIZE(bp) || gn == gio->io_gang_tree);
2916 * If you're a gang header, your data is in gn->gn_gbh.
2917 * If you're a gang member, your data is in 'data' and gn == NULL.
2919 zio = zio_gang_issue_func[gio->io_type](pio, bp, gn, data, offset);
2921 if (gn != NULL) {
2922 ASSERT(gn->gn_gbh->zg_tail.zec_magic == ZEC_MAGIC);
2925 blkptr_t *gbp = &gn->gn_gbh->zg_blkptr[g];
2928 zio_gang_tree_issue(zio, gn->gn_child[g], gbp, data,
2934 if (gn == gio->io_gang_tree)
3034 zio_gang_node_t *gn, **gnpp;
3108 gn = zio_gang_node_alloc(gnpp);
3109 gbh = gn->gn_gbh;
3150 zio_write_gang_done, &gn->gn_child[g], pio->io_priority,
4159 zio_dva_unallocate(zio_t *zio, zio_gang_node_t *gn, blkptr_t *bp)
4169 if (gn != NULL) {
4171 zio_dva_unallocate(zio, gn->gn_child[g],
4172 &gn->gn_gbh->zg_blkptr[g]);