Lines Matching refs:odn
704 dnode_move_impl(dnode_t *odn, dnode_t *ndn) in dnode_move_impl() argument
708 ASSERT(!RW_LOCK_HELD(&odn->dn_struct_rwlock)); in dnode_move_impl()
709 ASSERT(MUTEX_NOT_HELD(&odn->dn_mtx)); in dnode_move_impl()
710 ASSERT(MUTEX_NOT_HELD(&odn->dn_dbufs_mtx)); in dnode_move_impl()
711 ASSERT(!RW_LOCK_HELD(&odn->dn_zfetch.zf_rwlock)); in dnode_move_impl()
714 ndn->dn_objset = odn->dn_objset; in dnode_move_impl()
715 ndn->dn_object = odn->dn_object; in dnode_move_impl()
716 ndn->dn_dbuf = odn->dn_dbuf; in dnode_move_impl()
717 ndn->dn_handle = odn->dn_handle; in dnode_move_impl()
718 ndn->dn_phys = odn->dn_phys; in dnode_move_impl()
719 ndn->dn_type = odn->dn_type; in dnode_move_impl()
720 ndn->dn_bonuslen = odn->dn_bonuslen; in dnode_move_impl()
721 ndn->dn_bonustype = odn->dn_bonustype; in dnode_move_impl()
722 ndn->dn_nblkptr = odn->dn_nblkptr; in dnode_move_impl()
723 ndn->dn_checksum = odn->dn_checksum; in dnode_move_impl()
724 ndn->dn_compress = odn->dn_compress; in dnode_move_impl()
725 ndn->dn_nlevels = odn->dn_nlevels; in dnode_move_impl()
726 ndn->dn_indblkshift = odn->dn_indblkshift; in dnode_move_impl()
727 ndn->dn_datablkshift = odn->dn_datablkshift; in dnode_move_impl()
728 ndn->dn_datablkszsec = odn->dn_datablkszsec; in dnode_move_impl()
729 ndn->dn_datablksz = odn->dn_datablksz; in dnode_move_impl()
730 ndn->dn_maxblkid = odn->dn_maxblkid; in dnode_move_impl()
731 bcopy(&odn->dn_next_nblkptr[0], &ndn->dn_next_nblkptr[0], in dnode_move_impl()
732 sizeof (odn->dn_next_nblkptr)); in dnode_move_impl()
733 bcopy(&odn->dn_next_nlevels[0], &ndn->dn_next_nlevels[0], in dnode_move_impl()
734 sizeof (odn->dn_next_nlevels)); in dnode_move_impl()
735 bcopy(&odn->dn_next_indblkshift[0], &ndn->dn_next_indblkshift[0], in dnode_move_impl()
736 sizeof (odn->dn_next_indblkshift)); in dnode_move_impl()
737 bcopy(&odn->dn_next_bonustype[0], &ndn->dn_next_bonustype[0], in dnode_move_impl()
738 sizeof (odn->dn_next_bonustype)); in dnode_move_impl()
739 bcopy(&odn->dn_rm_spillblk[0], &ndn->dn_rm_spillblk[0], in dnode_move_impl()
740 sizeof (odn->dn_rm_spillblk)); in dnode_move_impl()
741 bcopy(&odn->dn_next_bonuslen[0], &ndn->dn_next_bonuslen[0], in dnode_move_impl()
742 sizeof (odn->dn_next_bonuslen)); in dnode_move_impl()
743 bcopy(&odn->dn_next_blksz[0], &ndn->dn_next_blksz[0], in dnode_move_impl()
744 sizeof (odn->dn_next_blksz)); in dnode_move_impl()
747 &odn->dn_dirty_records[i]); in dnode_move_impl()
749 bcopy(&odn->dn_free_ranges[0], &ndn->dn_free_ranges[0], in dnode_move_impl()
750 sizeof (odn->dn_free_ranges)); in dnode_move_impl()
751 ndn->dn_allocated_txg = odn->dn_allocated_txg; in dnode_move_impl()
752 ndn->dn_free_txg = odn->dn_free_txg; in dnode_move_impl()
753 ndn->dn_assigned_txg = odn->dn_assigned_txg; in dnode_move_impl()
754 ndn->dn_dirtyctx = odn->dn_dirtyctx; in dnode_move_impl()
755 ndn->dn_dirtyctx_firstset = odn->dn_dirtyctx_firstset; in dnode_move_impl()
756 ASSERT(refcount_count(&odn->dn_tx_holds) == 0); in dnode_move_impl()
757 refcount_transfer(&ndn->dn_holds, &odn->dn_holds); in dnode_move_impl()
759 avl_swap(&ndn->dn_dbufs, &odn->dn_dbufs); in dnode_move_impl()
760 ndn->dn_dbufs_count = odn->dn_dbufs_count; in dnode_move_impl()
761 ndn->dn_unlisted_l0_blkid = odn->dn_unlisted_l0_blkid; in dnode_move_impl()
762 ndn->dn_bonus = odn->dn_bonus; in dnode_move_impl()
763 ndn->dn_have_spill = odn->dn_have_spill; in dnode_move_impl()
764 ndn->dn_zio = odn->dn_zio; in dnode_move_impl()
765 ndn->dn_oldused = odn->dn_oldused; in dnode_move_impl()
766 ndn->dn_oldflags = odn->dn_oldflags; in dnode_move_impl()
767 ndn->dn_olduid = odn->dn_olduid; in dnode_move_impl()
768 ndn->dn_oldgid = odn->dn_oldgid; in dnode_move_impl()
769 ndn->dn_newuid = odn->dn_newuid; in dnode_move_impl()
770 ndn->dn_newgid = odn->dn_newgid; in dnode_move_impl()
771 ndn->dn_id_flags = odn->dn_id_flags; in dnode_move_impl()
773 list_move_tail(&ndn->dn_zfetch.zf_stream, &odn->dn_zfetch.zf_stream); in dnode_move_impl()
774 ndn->dn_zfetch.zf_dnode = odn->dn_zfetch.zf_dnode; in dnode_move_impl()
780 ASSERT(ndn->dn_handle->dnh_dnode == odn); in dnode_move_impl()
782 if (ndn->dn_zfetch.zf_dnode == odn) { in dnode_move_impl()
789 odn->dn_dbuf = NULL; in dnode_move_impl()
790 odn->dn_handle = NULL; in dnode_move_impl()
791 avl_create(&odn->dn_dbufs, dbuf_compare, sizeof (dmu_buf_impl_t), in dnode_move_impl()
793 odn->dn_dbufs_count = 0; in dnode_move_impl()
794 odn->dn_unlisted_l0_blkid = 0; in dnode_move_impl()
795 odn->dn_bonus = NULL; in dnode_move_impl()
796 odn->dn_zfetch.zf_dnode = NULL; in dnode_move_impl()
802 POINTER_INVALIDATE(&odn->dn_objset); in dnode_move_impl()
808 list_create(&odn->dn_dirty_records[i], in dnode_move_impl()
811 odn->dn_free_ranges[i] = NULL; in dnode_move_impl()
812 odn->dn_next_nlevels[i] = 0; in dnode_move_impl()
813 odn->dn_next_indblkshift[i] = 0; in dnode_move_impl()
814 odn->dn_next_bonustype[i] = 0; in dnode_move_impl()
815 odn->dn_rm_spillblk[i] = 0; in dnode_move_impl()
816 odn->dn_next_bonuslen[i] = 0; in dnode_move_impl()
817 odn->dn_next_blksz[i] = 0; in dnode_move_impl()
819 odn->dn_allocated_txg = 0; in dnode_move_impl()
820 odn->dn_free_txg = 0; in dnode_move_impl()
821 odn->dn_assigned_txg = 0; in dnode_move_impl()
822 odn->dn_dirtyctx = 0; in dnode_move_impl()
823 odn->dn_dirtyctx_firstset = NULL; in dnode_move_impl()
824 odn->dn_have_spill = B_FALSE; in dnode_move_impl()
825 odn->dn_zio = NULL; in dnode_move_impl()
826 odn->dn_oldused = 0; in dnode_move_impl()
827 odn->dn_oldflags = 0; in dnode_move_impl()
828 odn->dn_olduid = 0; in dnode_move_impl()
829 odn->dn_oldgid = 0; in dnode_move_impl()
830 odn->dn_newuid = 0; in dnode_move_impl()
831 odn->dn_newgid = 0; in dnode_move_impl()
832 odn->dn_id_flags = 0; in dnode_move_impl()
838 odn->dn_moved = (uint8_t)-1; in dnode_move_impl()
846 dnode_t *odn = buf, *ndn = newbuf; in dnode_move() local
860 os = odn->dn_objset; in dnode_move()
870 if (os != odn->dn_objset) { in dnode_move()
887 if (os != odn->dn_objset) { in dnode_move()
901 if (DMU_OBJECT_IS_SPECIAL(odn->dn_object)) { in dnode_move()
906 ASSERT(odn->dn_dbuf != NULL); /* only "special" dnodes have no parent */ in dnode_move()
916 if (!zrl_tryenter(&odn->dn_handle->dnh_zrlock)) { in dnode_move()
931 if (!rw_tryenter(&odn->dn_struct_rwlock, RW_WRITER)) { in dnode_move()
932 zrl_exit(&odn->dn_handle->dnh_zrlock); in dnode_move()
947 refcount = refcount_count(&odn->dn_holds); in dnode_move()
949 dbufs = odn->dn_dbufs_count; in dnode_move()
953 DTRACE_PROBE3(dnode__move, dnode_t *, odn, int64_t, refcount, in dnode_move()
957 rw_exit(&odn->dn_struct_rwlock); in dnode_move()
958 zrl_exit(&odn->dn_handle->dnh_zrlock); in dnode_move()
964 rw_exit(&odn->dn_struct_rwlock); in dnode_move()
971 dnode_move_impl(odn, ndn); in dnode_move()
973 list_link_replace(&odn->dn_link, &ndn->dn_link); in dnode_move()