Lines Matching refs:odn
748 dnode_move_impl(dnode_t *odn, dnode_t *ndn) in dnode_move_impl() argument
752 ASSERT(!RW_LOCK_HELD(&odn->dn_struct_rwlock)); in dnode_move_impl()
753 ASSERT(MUTEX_NOT_HELD(&odn->dn_mtx)); in dnode_move_impl()
754 ASSERT(MUTEX_NOT_HELD(&odn->dn_dbufs_mtx)); in dnode_move_impl()
755 ASSERT(!RW_LOCK_HELD(&odn->dn_zfetch.zf_rwlock)); in dnode_move_impl()
758 ndn->dn_objset = odn->dn_objset; in dnode_move_impl()
759 ndn->dn_object = odn->dn_object; in dnode_move_impl()
760 ndn->dn_dbuf = odn->dn_dbuf; in dnode_move_impl()
761 ndn->dn_handle = odn->dn_handle; in dnode_move_impl()
762 ndn->dn_phys = odn->dn_phys; in dnode_move_impl()
763 ndn->dn_type = odn->dn_type; in dnode_move_impl()
764 ndn->dn_bonuslen = odn->dn_bonuslen; in dnode_move_impl()
765 ndn->dn_bonustype = odn->dn_bonustype; in dnode_move_impl()
766 ndn->dn_nblkptr = odn->dn_nblkptr; in dnode_move_impl()
767 ndn->dn_checksum = odn->dn_checksum; in dnode_move_impl()
768 ndn->dn_compress = odn->dn_compress; in dnode_move_impl()
769 ndn->dn_nlevels = odn->dn_nlevels; in dnode_move_impl()
770 ndn->dn_indblkshift = odn->dn_indblkshift; in dnode_move_impl()
771 ndn->dn_datablkshift = odn->dn_datablkshift; in dnode_move_impl()
772 ndn->dn_datablkszsec = odn->dn_datablkszsec; in dnode_move_impl()
773 ndn->dn_datablksz = odn->dn_datablksz; in dnode_move_impl()
774 ndn->dn_maxblkid = odn->dn_maxblkid; in dnode_move_impl()
775 ndn->dn_num_slots = odn->dn_num_slots; in dnode_move_impl()
776 bcopy(&odn->dn_next_type[0], &ndn->dn_next_type[0], in dnode_move_impl()
777 sizeof (odn->dn_next_type)); in dnode_move_impl()
778 bcopy(&odn->dn_next_nblkptr[0], &ndn->dn_next_nblkptr[0], in dnode_move_impl()
779 sizeof (odn->dn_next_nblkptr)); in dnode_move_impl()
780 bcopy(&odn->dn_next_nlevels[0], &ndn->dn_next_nlevels[0], in dnode_move_impl()
781 sizeof (odn->dn_next_nlevels)); in dnode_move_impl()
782 bcopy(&odn->dn_next_indblkshift[0], &ndn->dn_next_indblkshift[0], in dnode_move_impl()
783 sizeof (odn->dn_next_indblkshift)); in dnode_move_impl()
784 bcopy(&odn->dn_next_bonustype[0], &ndn->dn_next_bonustype[0], in dnode_move_impl()
785 sizeof (odn->dn_next_bonustype)); in dnode_move_impl()
786 bcopy(&odn->dn_rm_spillblk[0], &ndn->dn_rm_spillblk[0], in dnode_move_impl()
787 sizeof (odn->dn_rm_spillblk)); in dnode_move_impl()
788 bcopy(&odn->dn_next_bonuslen[0], &ndn->dn_next_bonuslen[0], in dnode_move_impl()
789 sizeof (odn->dn_next_bonuslen)); in dnode_move_impl()
790 bcopy(&odn->dn_next_blksz[0], &ndn->dn_next_blksz[0], in dnode_move_impl()
791 sizeof (odn->dn_next_blksz)); in dnode_move_impl()
792 bcopy(&odn->dn_next_maxblkid[0], &ndn->dn_next_maxblkid[0], in dnode_move_impl()
793 sizeof (odn->dn_next_maxblkid)); in dnode_move_impl()
796 &odn->dn_dirty_records[i]); in dnode_move_impl()
798 bcopy(&odn->dn_free_ranges[0], &ndn->dn_free_ranges[0], in dnode_move_impl()
799 sizeof (odn->dn_free_ranges)); in dnode_move_impl()
800 ndn->dn_allocated_txg = odn->dn_allocated_txg; in dnode_move_impl()
801 ndn->dn_free_txg = odn->dn_free_txg; in dnode_move_impl()
802 ndn->dn_assigned_txg = odn->dn_assigned_txg; in dnode_move_impl()
803 ndn->dn_dirty_txg = odn->dn_dirty_txg; in dnode_move_impl()
804 ndn->dn_dirtyctx = odn->dn_dirtyctx; in dnode_move_impl()
805 ndn->dn_dirtyctx_firstset = odn->dn_dirtyctx_firstset; in dnode_move_impl()
806 ASSERT(zfs_refcount_count(&odn->dn_tx_holds) == 0); in dnode_move_impl()
807 zfs_refcount_transfer(&ndn->dn_holds, &odn->dn_holds); in dnode_move_impl()
809 avl_swap(&ndn->dn_dbufs, &odn->dn_dbufs); in dnode_move_impl()
810 ndn->dn_dbufs_count = odn->dn_dbufs_count; in dnode_move_impl()
811 ndn->dn_bonus = odn->dn_bonus; in dnode_move_impl()
812 ndn->dn_have_spill = odn->dn_have_spill; in dnode_move_impl()
813 ndn->dn_zio = odn->dn_zio; in dnode_move_impl()
814 ndn->dn_oldused = odn->dn_oldused; in dnode_move_impl()
815 ndn->dn_oldflags = odn->dn_oldflags; in dnode_move_impl()
816 ndn->dn_olduid = odn->dn_olduid; in dnode_move_impl()
817 ndn->dn_oldgid = odn->dn_oldgid; in dnode_move_impl()
818 ndn->dn_oldprojid = odn->dn_oldprojid; in dnode_move_impl()
819 ndn->dn_newuid = odn->dn_newuid; in dnode_move_impl()
820 ndn->dn_newgid = odn->dn_newgid; in dnode_move_impl()
821 ndn->dn_newprojid = odn->dn_newprojid; in dnode_move_impl()
822 ndn->dn_id_flags = odn->dn_id_flags; in dnode_move_impl()
824 list_move_tail(&ndn->dn_zfetch.zf_stream, &odn->dn_zfetch.zf_stream); in dnode_move_impl()
825 ndn->dn_zfetch.zf_dnode = odn->dn_zfetch.zf_dnode; in dnode_move_impl()
831 ASSERT(ndn->dn_handle->dnh_dnode == odn); in dnode_move_impl()
833 if (ndn->dn_zfetch.zf_dnode == odn) { in dnode_move_impl()
840 odn->dn_dbuf = NULL; in dnode_move_impl()
841 odn->dn_handle = NULL; in dnode_move_impl()
842 avl_create(&odn->dn_dbufs, dbuf_compare, sizeof (dmu_buf_impl_t), in dnode_move_impl()
844 odn->dn_dbufs_count = 0; in dnode_move_impl()
845 odn->dn_bonus = NULL; in dnode_move_impl()
846 odn->dn_zfetch.zf_dnode = NULL; in dnode_move_impl()
852 POINTER_INVALIDATE(&odn->dn_objset); in dnode_move_impl()
858 list_create(&odn->dn_dirty_records[i], in dnode_move_impl()
861 odn->dn_free_ranges[i] = NULL; in dnode_move_impl()
862 odn->dn_next_nlevels[i] = 0; in dnode_move_impl()
863 odn->dn_next_indblkshift[i] = 0; in dnode_move_impl()
864 odn->dn_next_bonustype[i] = 0; in dnode_move_impl()
865 odn->dn_rm_spillblk[i] = 0; in dnode_move_impl()
866 odn->dn_next_bonuslen[i] = 0; in dnode_move_impl()
867 odn->dn_next_blksz[i] = 0; in dnode_move_impl()
869 odn->dn_allocated_txg = 0; in dnode_move_impl()
870 odn->dn_free_txg = 0; in dnode_move_impl()
871 odn->dn_assigned_txg = 0; in dnode_move_impl()
872 odn->dn_dirty_txg = 0; in dnode_move_impl()
873 odn->dn_dirtyctx = 0; in dnode_move_impl()
874 odn->dn_dirtyctx_firstset = NULL; in dnode_move_impl()
875 odn->dn_have_spill = B_FALSE; in dnode_move_impl()
876 odn->dn_zio = NULL; in dnode_move_impl()
877 odn->dn_oldused = 0; in dnode_move_impl()
878 odn->dn_oldflags = 0; in dnode_move_impl()
879 odn->dn_olduid = 0; in dnode_move_impl()
880 odn->dn_oldgid = 0; in dnode_move_impl()
881 odn->dn_oldprojid = ZFS_DEFAULT_PROJID; in dnode_move_impl()
882 odn->dn_newuid = 0; in dnode_move_impl()
883 odn->dn_newgid = 0; in dnode_move_impl()
884 odn->dn_newprojid = ZFS_DEFAULT_PROJID; in dnode_move_impl()
885 odn->dn_id_flags = 0; in dnode_move_impl()
891 odn->dn_moved = (uint8_t)-1; in dnode_move_impl()
898 dnode_t *odn = buf, *ndn = newbuf; in dnode_move() local
912 os = odn->dn_objset; in dnode_move()
922 if (os != odn->dn_objset) { in dnode_move()
939 if (os != odn->dn_objset) { in dnode_move()
953 if (DMU_OBJECT_IS_SPECIAL(odn->dn_object)) { in dnode_move()
958 ASSERT(odn->dn_dbuf != NULL); /* only "special" dnodes have no parent */ in dnode_move()
968 if (!zrl_tryenter(&odn->dn_handle->dnh_zrlock)) { in dnode_move()
983 if (!rw_tryenter(&odn->dn_struct_rwlock, RW_WRITER)) { in dnode_move()
984 zrl_exit(&odn->dn_handle->dnh_zrlock); in dnode_move()
999 refcount = zfs_refcount_count(&odn->dn_holds); in dnode_move()
1001 dbufs = odn->dn_dbufs_count; in dnode_move()
1005 DTRACE_PROBE3(dnode__move, dnode_t *, odn, int64_t, refcount, in dnode_move()
1009 rw_exit(&odn->dn_struct_rwlock); in dnode_move()
1010 zrl_exit(&odn->dn_handle->dnh_zrlock); in dnode_move()
1016 rw_exit(&odn->dn_struct_rwlock); in dnode_move()
1023 dnode_move_impl(odn, ndn); in dnode_move()
1025 list_link_replace(&odn->dn_link, &ndn->dn_link); in dnode_move()