Lines Matching full:pio
722 zio_walk_children(zio_t *pio, zio_link_t **zl) in zio_walk_children() argument
724 list_t *cl = &pio->io_child_list; in zio_walk_children()
726 ASSERT(MUTEX_HELD(&pio->io_lock)); in zio_walk_children()
732 ASSERT((*zl)->zl_parent == pio); in zio_walk_children()
740 zio_t *pio = zio_walk_parents(cio, &zl); in zio_unique_parent() local
743 return (pio); in zio_unique_parent()
747 zio_add_child(zio_t *pio, zio_t *cio) in zio_add_child() argument
755 ASSERT3S(cio->io_child_type, <=, pio->io_child_type); in zio_add_child()
760 (pio->io_pipeline & ZIO_STAGE_READY) == 0); in zio_add_child()
763 zl->zl_parent = pio; in zio_add_child()
766 mutex_enter(&pio->io_lock); in zio_add_child()
769 ASSERT(pio->io_state[ZIO_WAIT_DONE] == 0); in zio_add_child()
771 uint64_t *countp = pio->io_children[cio->io_child_type]; in zio_add_child()
775 list_insert_head(&pio->io_child_list, zl); in zio_add_child()
779 mutex_exit(&pio->io_lock); in zio_add_child()
783 zio_add_child_first(zio_t *pio, zio_t *cio) in zio_add_child_first() argument
791 ASSERT3S(cio->io_child_type, <=, pio->io_child_type); in zio_add_child_first()
796 (pio->io_pipeline & ZIO_STAGE_READY) == 0); in zio_add_child_first()
799 zl->zl_parent = pio; in zio_add_child_first()
805 mutex_enter(&pio->io_lock); in zio_add_child_first()
807 ASSERT(pio->io_state[ZIO_WAIT_DONE] == 0); in zio_add_child_first()
809 uint64_t *countp = pio->io_children[cio->io_child_type]; in zio_add_child_first()
813 list_insert_head(&pio->io_child_list, zl); in zio_add_child_first()
815 mutex_exit(&pio->io_lock); in zio_add_child_first()
819 zio_remove_child(zio_t *pio, zio_t *cio, zio_link_t *zl) in zio_remove_child() argument
821 ASSERT(zl->zl_parent == pio); in zio_remove_child()
824 mutex_enter(&pio->io_lock); in zio_remove_child()
827 list_remove(&pio->io_child_list, zl); in zio_remove_child()
831 mutex_exit(&pio->io_lock); in zio_remove_child()
861 zio_notify_parent(zio_t *pio, zio_t *zio, enum zio_wait_type wait, in zio_notify_parent() argument
864 uint64_t *countp = &pio->io_children[zio->io_child_type][wait]; in zio_notify_parent()
865 int *errorp = &pio->io_child_error[zio->io_child_type]; in zio_notify_parent()
867 mutex_enter(&pio->io_lock); in zio_notify_parent()
870 pio->io_reexecute |= zio->io_reexecute; in zio_notify_parent()
877 pio->io_flags |= ZIO_FLAG_DIO_CHKSUM_ERR; in zio_notify_parent()
881 if (*countp == 0 && pio->io_stall == countp) { in zio_notify_parent()
883 pio->io_stage < ZIO_STAGE_VDEV_IO_START ? ZIO_TASKQ_ISSUE : in zio_notify_parent()
885 pio->io_stall = NULL; in zio_notify_parent()
886 mutex_exit(&pio->io_lock); in zio_notify_parent()
913 (pio->io_type == zio->io_type || in zio_notify_parent()
914 (pio->io_type == ZIO_TYPE_NULL && !pio->io_done))) { in zio_notify_parent()
915 *next_to_executep = pio; in zio_notify_parent()
917 zio_taskq_dispatch(pio, type, B_FALSE); in zio_notify_parent()
920 mutex_exit(&pio->io_lock); in zio_notify_parent()
971 zio_create(zio_t *pio, spa_t *spa, uint64_t txg, const blkptr_t *bp, in zio_create() argument
1050 if (pio != NULL) { in zio_create()
1051 zio->io_metaslab_class = pio->io_metaslab_class; in zio_create()
1053 zio->io_logical = pio->io_logical; in zio_create()
1055 zio->io_gang_leader = pio->io_gang_leader; in zio_create()
1056 zio_add_child_first(pio, zio); in zio_create()
1080 zio_null(zio_t *pio, spa_t *spa, vdev_t *vd, zio_done_func_t *done, in zio_null() argument
1085 zio = zio_create(pio, spa, 0, NULL, NULL, 0, 0, done, private, in zio_null()
1335 zio_read(zio_t *pio, spa_t *spa, const blkptr_t *bp, in zio_read() argument
1341 zio = zio_create(pio, spa, BP_GET_BIRTH(bp), bp, in zio_read()
1351 zio_write(zio_t *pio, spa_t *spa, uint64_t txg, blkptr_t *bp, in zio_write() argument
1363 zio = zio_create(pio, spa, txg, bp, data, lsize, psize, done, private, in zio_write()
1388 zio_rewrite(zio_t *pio, spa_t *spa, uint64_t txg, blkptr_t *bp, abd_t *data, in zio_rewrite() argument
1394 zio = zio_create(pio, spa, txg, bp, data, size, size, done, private, in zio_rewrite()
1466 zio_free_sync(zio_t *pio, spa_t *spa, uint64_t txg, const blkptr_t *bp, in zio_free_sync() argument
1490 return (zio_create(pio, spa, txg, bp, NULL, BP_GET_PSIZE(bp), in zio_free_sync()
1501 zio_claim(zio_t *pio, spa_t *spa, uint64_t txg, const blkptr_t *bp, in zio_claim() argument
1510 return (zio_null(pio, spa, NULL, NULL, NULL, 0)); in zio_claim()
1529 zio = zio_create(pio, spa, txg, bp, NULL, BP_GET_PSIZE(bp), in zio_claim()
1538 zio_trim(zio_t *pio, vdev_t *vd, uint64_t offset, uint64_t size, in zio_trim() argument
1549 zio = zio_create(pio, vd->vdev_spa, 0, NULL, NULL, size, size, done, in zio_trim()
1558 zio_read_phys(zio_t *pio, vdev_t *vd, uint64_t offset, uint64_t size, in zio_read_phys() argument
1569 zio = zio_create(pio, vd->vdev_spa, 0, NULL, data, size, size, done, in zio_read_phys()
1579 zio_write_phys(zio_t *pio, vdev_t *vd, uint64_t offset, uint64_t size, in zio_write_phys() argument
1590 zio = zio_create(pio, vd->vdev_spa, 0, NULL, data, size, size, done, in zio_write_phys()
1616 zio_vdev_child_io(zio_t *pio, blkptr_t *bp, vdev_t *vd, uint64_t offset, in zio_vdev_child_io() argument
1641 pio->io_pipeline &= ~ZIO_STAGE_CHECKSUM_VERIFY; in zio_vdev_child_io()
1649 ASSERT0(pio->io_flags & ZIO_FLAG_DIO_CHKSUM_ERR); in zio_vdev_child_io()
1651 pio->io_prop.zp_direct_write == B_TRUE) { in zio_vdev_child_io()
1661 ASSERT3U(pio->io_child_type, ==, ZIO_CHILD_LOGICAL); in zio_vdev_child_io()
1670 flags |= ZIO_VDEV_CHILD_FLAGS(pio); in zio_vdev_child_io()
1687 ASSERT(pio->io_metaslab_class != NULL); in zio_vdev_child_io()
1688 ASSERT(pio->io_metaslab_class->mc_alloc_throttle_enabled); in zio_vdev_child_io()
1692 ASSERT(!(pio->io_flags & ZIO_FLAG_IO_REWRITE) || in zio_vdev_child_io()
1693 pio->io_child_type == ZIO_CHILD_GANG); in zio_vdev_child_io()
1698 zio = zio_create(pio, pio->io_spa, pio->io_txg, bp, data, size, size, in zio_vdev_child_io()
1699 done, private, type, priority, flags, vd, offset, &pio->io_bookmark, in zio_vdev_child_io()
1727 * the flush zios are issued immediately. You can wait on pio to pause until
1731 zio_flush(zio_t *pio, vdev_t *vd) in zio_flush() argument
1740 zio_nowait(zio_create(pio, vd->vdev_spa, 0, NULL, NULL, 0, 0, in zio_flush()
1745 zio_flush(pio, vd->vdev_child[c]); in zio_flush()
2285 zio_deadman_impl(zio_t *pio, int ziodepth) in zio_deadman_impl() argument
2289 vdev_t *vd = pio->io_vd; in zio_deadman_impl()
2293 zbookmark_phys_t *zb = &pio->io_bookmark; in zio_deadman_impl()
2294 uint64_t delta = gethrtime() - pio->io_timestamp; in zio_deadman_impl()
2295 uint64_t failmode = spa_get_deadman_failmode(pio->io_spa); in zio_deadman_impl()
2307 ziodepth, pio, pio->io_timestamp, in zio_deadman_impl()
2308 (u_longlong_t)delta, pio->io_delta, pio->io_delay, in zio_deadman_impl()
2310 vq ? vq->vq_io_complete_ts : 0, pio->io_type, in zio_deadman_impl()
2311 pio->io_priority, (u_longlong_t)pio->io_flags, in zio_deadman_impl()
2312 pio->io_stage, pio->io_pipeline, pio->io_pipeline_trace, in zio_deadman_impl()
2315 (u_longlong_t)pio->io_offset, (u_longlong_t)pio->io_size, in zio_deadman_impl()
2316 pio->io_error); in zio_deadman_impl()
2318 pio->io_spa, vd, zb, pio, 0); in zio_deadman_impl()
2321 taskq_empty_ent(&pio->io_tqent)) { in zio_deadman_impl()
2322 zio_interrupt(pio); in zio_deadman_impl()
2326 mutex_enter(&pio->io_lock); in zio_deadman_impl()
2327 for (cio = zio_walk_children(pio, &zl); cio != NULL; cio = cio_next) { in zio_deadman_impl()
2328 cio_next = zio_walk_children(pio, &zl); in zio_deadman_impl()
2331 mutex_exit(&pio->io_lock); in zio_deadman_impl()
2339 zio_deadman(zio_t *pio, const char *tag) in zio_deadman() argument
2341 spa_t *spa = pio->io_spa; in zio_deadman()
2347 zio_deadman_impl(pio, 0); in zio_deadman()
2557 zio_t *pio; in zio_nowait() local
2565 pio = spa->spa_async_zio_root[CPU_SEQID_UNSTABLE]; in zio_nowait()
2567 zio_add_child(pio, zio); in zio_nowait()
2587 zio_t *pio = arg; in zio_reexecute() local
2590 ASSERT(pio->io_child_type == ZIO_CHILD_LOGICAL); in zio_reexecute()
2591 ASSERT(pio->io_orig_stage == ZIO_STAGE_OPEN); in zio_reexecute()
2592 ASSERT(pio->io_gang_leader == NULL); in zio_reexecute()
2593 ASSERT(pio->io_gang_tree == NULL); in zio_reexecute()
2595 mutex_enter(&pio->io_lock); in zio_reexecute()
2596 pio->io_flags = pio->io_orig_flags; in zio_reexecute()
2597 pio->io_stage = pio->io_orig_stage; in zio_reexecute()
2598 pio->io_pipeline = pio->io_orig_pipeline; in zio_reexecute()
2599 pio->io_reexecute = 0; in zio_reexecute()
2600 pio->io_flags |= ZIO_FLAG_REEXECUTED; in zio_reexecute()
2601 pio->io_pipeline_trace = 0; in zio_reexecute()
2602 pio->io_error = 0; in zio_reexecute()
2603 pio->io_state[ZIO_WAIT_READY] = (pio->io_stage >= ZIO_STAGE_READY) || in zio_reexecute()
2604 (pio->io_pipeline & ZIO_STAGE_READY) == 0; in zio_reexecute()
2605 pio->io_state[ZIO_WAIT_DONE] = (pio->io_stage >= ZIO_STAGE_DONE); in zio_reexecute()
2620 while ((gio = zio_walk_parents(pio, &zl)) != NULL) { in zio_reexecute()
2623 gio->io_children[pio->io_child_type][w] += in zio_reexecute()
2624 !pio->io_state[w]; in zio_reexecute()
2630 pio->io_child_error[c] = 0; in zio_reexecute()
2632 if (IO_IS_ALLOCATING(pio)) in zio_reexecute()
2633 BP_ZERO(pio->io_bp); in zio_reexecute()
2636 * As we reexecute pio's children, new children could be created. in zio_reexecute()
2637 * New children go to the head of pio's io_child_list, however, in zio_reexecute()
2639 * the remainder of pio's io_child_list, from 'cio_next' onward, in zio_reexecute()
2643 for (cio = zio_walk_children(pio, &zl); cio != NULL; cio = cio_next) { in zio_reexecute()
2644 cio_next = zio_walk_children(pio, &zl); in zio_reexecute()
2645 mutex_exit(&pio->io_lock); in zio_reexecute()
2647 mutex_enter(&pio->io_lock); in zio_reexecute()
2649 mutex_exit(&pio->io_lock); in zio_reexecute()
2656 if (!(pio->io_flags & ZIO_FLAG_GODFATHER)) { in zio_reexecute()
2657 pio->io_queued_timestamp = gethrtime(); in zio_reexecute()
2658 __zio_execute(pio); in zio_reexecute()
2702 zio_t *pio; in zio_resume() local
2714 pio = spa->spa_suspend_zio_root; in zio_resume()
2718 if (pio == NULL) in zio_resume()
2721 zio_reexecute(pio); in zio_resume()
2722 return (zio_wait(pio)); in zio_resume()
2807 zio_read_gang(zio_t *pio, blkptr_t *bp, zio_gang_node_t *gn, abd_t *data, in zio_read_gang() argument
2811 return (pio); in zio_read_gang()
2813 return (zio_read(pio, pio->io_spa, bp, abd_get_offset(data, offset), in zio_read_gang()
2815 NULL, pio->io_priority, ZIO_GANG_CHILD_FLAGS(pio), in zio_read_gang()
2816 &pio->io_bookmark)); in zio_read_gang()
2820 zio_rewrite_gang(zio_t *pio, blkptr_t *bp, zio_gang_node_t *gn, abd_t *data, in zio_rewrite_gang() argument
2828 zio = zio_rewrite(pio, pio->io_spa, pio->io_txg, bp, in zio_rewrite_gang()
2830 pio->io_priority, ZIO_GANG_CHILD_FLAGS(pio), in zio_rewrite_gang()
2831 &pio->io_bookmark); in zio_rewrite_gang()
2841 if (gn != pio->io_gang_leader->io_gang_tree) { in zio_rewrite_gang()
2853 if (pio->io_gang_leader->io_flags & ZIO_FLAG_INDUCE_DAMAGE) in zio_rewrite_gang()
2856 zio = zio_rewrite(pio, pio->io_spa, pio->io_txg, bp, in zio_rewrite_gang()
2858 zio_gang_issue_func_done, NULL, pio->io_priority, in zio_rewrite_gang()
2859 ZIO_GANG_CHILD_FLAGS(pio), &pio->io_bookmark); in zio_rewrite_gang()
2866 zio_free_gang(zio_t *pio, blkptr_t *bp, zio_gang_node_t *gn, abd_t *data, in zio_free_gang() argument
2871 zio_t *zio = zio_free_sync(pio, pio->io_spa, pio->io_txg, bp, in zio_free_gang()
2872 ZIO_GANG_CHILD_FLAGS(pio)); in zio_free_gang()
2874 zio = zio_null(pio, pio->io_spa, in zio_free_gang()
2875 NULL, NULL, NULL, ZIO_GANG_CHILD_FLAGS(pio)); in zio_free_gang()
2881 zio_claim_gang(zio_t *pio, blkptr_t *bp, zio_gang_node_t *gn, abd_t *data, in zio_claim_gang() argument
2885 return (zio_claim(pio, pio->io_spa, pio->io_txg, bp, in zio_claim_gang()
2886 NULL, NULL, ZIO_GANG_CHILD_FLAGS(pio))); in zio_claim_gang()
2987 zio_gang_tree_issue(zio_t *pio, zio_gang_node_t *gn, blkptr_t *bp, abd_t *data, in zio_gang_tree_issue() argument
2990 zio_t *gio = pio->io_gang_leader; in zio_gang_tree_issue()
3001 zio = zio_gang_issue_func[gio->io_type](pio, bp, gn, data, offset); in zio_gang_tree_issue()
3019 if (zio != pio) in zio_gang_tree_issue()
3062 zio_gang_inherit_allocator(zio_t *pio, zio_t *cio) in zio_gang_inherit_allocator() argument
3064 cio->io_allocator = pio->io_allocator; in zio_gang_inherit_allocator()
3070 zio_t *pio = zio_unique_parent(zio); in zio_write_gang_member_ready() local
3072 dva_t *pdva = pio->io_bp->blk_dva; in zio_write_gang_member_ready()
3084 ASSERT3U(pio->io_prop.zp_copies, <=, BP_GET_NDVAS(pio->io_bp)); in zio_write_gang_member_ready()
3085 VERIFY3U(BP_GET_NDVAS(zio->io_bp), <=, BP_GET_NDVAS(pio->io_bp)); in zio_write_gang_member_ready()
3087 mutex_enter(&pio->io_lock); in zio_write_gang_member_ready()
3094 mutex_exit(&pio->io_lock); in zio_write_gang_member_ready()
3110 zio_write_gang_block(zio_t *pio, metaslab_class_t *mc) in zio_write_gang_block() argument
3112 spa_t *spa = pio->io_spa; in zio_write_gang_block()
3113 blkptr_t *bp = pio->io_bp; in zio_write_gang_block()
3114 zio_t *gio = pio->io_gang_leader; in zio_write_gang_block()
3119 uint64_t txg = pio->io_txg; in zio_write_gang_block()
3120 uint64_t resid = pio->io_size; in zio_write_gang_block()
3125 boolean_t has_data = !(pio->io_flags & ZIO_FLAG_NODATA); in zio_write_gang_block()
3138 ASSERT(ZIO_HAS_ALLOCATOR(pio)); in zio_write_gang_block()
3140 if (pio->io_flags & ZIO_FLAG_IO_ALLOCATING) { in zio_write_gang_block()
3141 ASSERT(pio->io_priority == ZIO_PRIORITY_ASYNC_WRITE); in zio_write_gang_block()
3145 VERIFY(zfs_refcount_held(&mc->mc_allocator[pio->io_allocator]. in zio_write_gang_block()
3146 mca_alloc_slots, pio)); in zio_write_gang_block()
3157 pio->io_allocator, pio, flags)); in zio_write_gang_block()
3161 bp, gbh_copies, txg, pio == gio ? NULL : gio->io_bp, flags, in zio_write_gang_block()
3162 &pio->io_alloc_list, pio, pio->io_allocator); in zio_write_gang_block()
3164 if (pio->io_flags & ZIO_FLAG_IO_ALLOCATING) { in zio_write_gang_block()
3165 ASSERT(pio->io_priority == ZIO_PRIORITY_ASYNC_WRITE); in zio_write_gang_block()
3176 gbh_copies - copies, pio->io_allocator, pio); in zio_write_gang_block()
3179 pio->io_error = error; in zio_write_gang_block()
3180 return (pio); in zio_write_gang_block()
3183 if (pio == gio) { in zio_write_gang_block()
3186 gnpp = pio->io_private; in zio_write_gang_block()
3187 ASSERT(pio->io_ready == zio_write_gang_member_ready); in zio_write_gang_block()
3198 zio = zio_rewrite(pio, spa, txg, bp, gbh_abd, SPA_GANGBLOCKSIZE, in zio_write_gang_block()
3199 zio_write_gang_done, NULL, pio->io_priority, in zio_write_gang_block()
3200 ZIO_GANG_CHILD_FLAGS(pio), &pio->io_bookmark); in zio_write_gang_block()
3202 zio_gang_inherit_allocator(pio, zio); in zio_write_gang_block()
3229 has_data ? abd_get_offset(pio->io_abd, pio->io_size - in zio_write_gang_block()
3232 zio_write_gang_done, &gn->gn_child[g], pio->io_priority, in zio_write_gang_block()
3233 ZIO_GANG_CHILD_FLAGS(pio), &pio->io_bookmark); in zio_write_gang_block()
3237 if (pio->io_flags & ZIO_FLAG_IO_ALLOCATING) { in zio_write_gang_block()
3238 ASSERT(pio->io_priority == ZIO_PRIORITY_ASYNC_WRITE); in zio_write_gang_block()
3253 * Set pio's pipeline to just wait for zio to finish. in zio_write_gang_block()
3255 pio->io_pipeline = ZIO_INTERLOCK_PIPELINE; in zio_write_gang_block()
3259 return (pio); in zio_write_gang_block()
3387 zio_t *pio = zio_unique_parent(zio); in zio_ddt_child_read_done() local
3389 mutex_enter(&pio->io_lock); in zio_ddt_child_read_done()
3402 mutex_exit(&pio->io_lock); in zio_ddt_child_read_done()
3644 zio_t *pio; in zio_ddt_child_write_done() local
3646 while ((pio = zio_walk_parents(zio, &zl)) != NULL) { in zio_ddt_child_write_done()
3647 if (!(pio->io_flags & ZIO_FLAG_DDT_CHILD)) in zio_ddt_child_write_done()
3673 zio_t *pio; in zio_ddt_child_write_ready() local
3675 while ((pio = zio_walk_parents(zio, &zl)) != NULL) { in zio_ddt_child_write_ready()
3676 if (!(pio->io_flags & ZIO_FLAG_DDT_CHILD)) in zio_ddt_child_write_ready()
3677 ddt_bp_fill(dde->dde_phys, v, pio->io_bp, zio->io_txg); in zio_ddt_child_write_ready()
3908 zio_t *pio = in zio_ddt_write() local
3910 ASSERT(pio); in zio_ddt_write()
3911 uint8_t parent_dvas = pio->io_prop.zp_copies; in zio_ddt_write()
4579 zio_change_priority(zio_t *pio, zio_priority_t priority) in zio_change_priority() argument
4586 if (pio->io_vd != NULL && pio->io_vd->vdev_ops->vdev_op_leaf) { in zio_change_priority()
4587 vdev_queue_change_io_priority(pio, priority); in zio_change_priority()
4589 pio->io_priority = priority; in zio_change_priority()
4592 mutex_enter(&pio->io_lock); in zio_change_priority()
4593 for (cio = zio_walk_children(pio, &zl); cio != NULL; cio = cio_next) { in zio_change_priority()
4594 cio_next = zio_walk_children(pio, &zl); in zio_change_priority()
4597 mutex_exit(&pio->io_lock); in zio_change_priority()
4965 zio_t *pio = zio_unique_parent(zio); in zio_checksum_verify() local
4978 if (pio->io_child_type == ZIO_CHILD_LOGICAL) { in zio_checksum_verify()
4998 zio_t *pio = zio_unique_parent(zio); in zio_dio_checksum_verify() local
5005 ASSERT3B(pio->io_prop.zp_direct_write, ==, B_TRUE); in zio_dio_checksum_verify()
5006 ASSERT3U(pio->io_child_type, ==, ZIO_CHILD_LOGICAL); in zio_dio_checksum_verify()
5101 zio_t *pio, *pio_next; in zio_ready() local
5145 pio = zio_walk_parents(zio, &zl); in zio_ready()
5155 for (; pio != NULL; pio = pio_next) { in zio_ready()
5157 zio_notify_parent(pio, zio, ZIO_WAIT_READY, NULL); in zio_ready()
5183 zio_t *pio = zio_unique_parent(zio); in zio_dva_throttle_done() local
5206 if (pio->io_child_type == ZIO_CHILD_GANG) { in zio_dva_throttle_done()
5211 if (pio->io_flags & ZIO_FLAG_IO_REWRITE) in zio_dva_throttle_done()
5212 pio = zio_unique_parent(pio); in zio_dva_throttle_done()
5216 ASSERT(IO_IS_ALLOCATING(pio)); in zio_dva_throttle_done()
5217 ASSERT(ZIO_HAS_ALLOCATOR(pio)); in zio_dva_throttle_done()
5224 mutex_enter(&pio->io_lock); in zio_dva_throttle_done()
5225 metaslab_group_alloc_decrement(zio->io_spa, vd->vdev_id, pio, flags, in zio_dva_throttle_done()
5226 pio->io_allocator, B_TRUE); in zio_dva_throttle_done()
5227 mutex_exit(&pio->io_lock); in zio_dva_throttle_done()
5230 pio->io_allocator, pio); in zio_dva_throttle_done()
5237 zio_allocate_dispatch(zio->io_spa, pio->io_allocator); in zio_dva_throttle_done()
5248 zio_t *pio, *pio_next; in zio_done() local
5512 for (pio = zio_walk_parents(zio, &zl); pio != NULL; in zio_done()
5513 pio = pio_next) { in zio_done()
5517 if ((pio->io_flags & ZIO_FLAG_GODFATHER) && in zio_done()
5519 zio_remove_child(pio, zio, remove_zl); in zio_done()
5524 zio_notify_parent(pio, zio, ZIO_WAIT_DONE, in zio_done()
5529 if ((pio = zio_unique_parent(zio)) != NULL) { in zio_done()
5541 zio_notify_parent(pio, zio, ZIO_WAIT_DONE, NULL); in zio_done()
5593 for (pio = zio_walk_parents(zio, &zl); pio != NULL; pio = pio_next) { in zio_done()
5596 zio_remove_child(pio, zio, remove_zl); in zio_done()
5597 zio_notify_parent(pio, zio, ZIO_WAIT_DONE, &next_to_execute); in zio_done()