equal
deleted
inserted
replaced
113 dn->dn_newuid = 0; |
113 dn->dn_newuid = 0; |
114 dn->dn_newgid = 0; |
114 dn->dn_newgid = 0; |
115 dn->dn_id_flags = 0; |
115 dn->dn_id_flags = 0; |
116 |
116 |
117 dn->dn_dbufs_count = 0; |
117 dn->dn_dbufs_count = 0; |
|
118 dn->dn_unlisted_l0_blkid = 0; |
118 list_create(&dn->dn_dbufs, sizeof (dmu_buf_impl_t), |
119 list_create(&dn->dn_dbufs, sizeof (dmu_buf_impl_t), |
119 offsetof(dmu_buf_impl_t, db_link)); |
120 offsetof(dmu_buf_impl_t, db_link)); |
120 |
121 |
121 dn->dn_moved = 0; |
122 dn->dn_moved = 0; |
122 return (0); |
123 return (0); |
165 ASSERT0(dn->dn_newuid); |
166 ASSERT0(dn->dn_newuid); |
166 ASSERT0(dn->dn_newgid); |
167 ASSERT0(dn->dn_newgid); |
167 ASSERT0(dn->dn_id_flags); |
168 ASSERT0(dn->dn_id_flags); |
168 |
169 |
169 ASSERT0(dn->dn_dbufs_count); |
170 ASSERT0(dn->dn_dbufs_count); |
|
171 ASSERT0(dn->dn_unlisted_l0_blkid); |
170 list_destroy(&dn->dn_dbufs); |
172 list_destroy(&dn->dn_dbufs); |
171 } |
173 } |
172 |
174 |
173 void |
175 void |
174 dnode_init(void) |
176 dnode_init(void) |
470 dn->dn_olduid = 0; |
472 dn->dn_olduid = 0; |
471 dn->dn_oldgid = 0; |
473 dn->dn_oldgid = 0; |
472 dn->dn_newuid = 0; |
474 dn->dn_newuid = 0; |
473 dn->dn_newgid = 0; |
475 dn->dn_newgid = 0; |
474 dn->dn_id_flags = 0; |
476 dn->dn_id_flags = 0; |
|
477 dn->dn_unlisted_l0_blkid = 0; |
475 |
478 |
476 dmu_zfetch_rele(&dn->dn_zfetch); |
479 dmu_zfetch_rele(&dn->dn_zfetch); |
477 kmem_cache_free(dnode_cache, dn); |
480 kmem_cache_free(dnode_cache, dn); |
478 arc_space_return(sizeof (dnode_t), ARC_SPACE_OTHER); |
481 arc_space_return(sizeof (dnode_t), ARC_SPACE_OTHER); |
479 } |
482 } |
700 ASSERT(refcount_count(&odn->dn_tx_holds) == 0); |
703 ASSERT(refcount_count(&odn->dn_tx_holds) == 0); |
701 refcount_transfer(&ndn->dn_holds, &odn->dn_holds); |
704 refcount_transfer(&ndn->dn_holds, &odn->dn_holds); |
702 ASSERT(list_is_empty(&ndn->dn_dbufs)); |
705 ASSERT(list_is_empty(&ndn->dn_dbufs)); |
703 list_move_tail(&ndn->dn_dbufs, &odn->dn_dbufs); |
706 list_move_tail(&ndn->dn_dbufs, &odn->dn_dbufs); |
704 ndn->dn_dbufs_count = odn->dn_dbufs_count; |
707 ndn->dn_dbufs_count = odn->dn_dbufs_count; |
|
708 ndn->dn_unlisted_l0_blkid = odn->dn_unlisted_l0_blkid; |
705 ndn->dn_bonus = odn->dn_bonus; |
709 ndn->dn_bonus = odn->dn_bonus; |
706 ndn->dn_have_spill = odn->dn_have_spill; |
710 ndn->dn_have_spill = odn->dn_have_spill; |
707 ndn->dn_zio = odn->dn_zio; |
711 ndn->dn_zio = odn->dn_zio; |
708 ndn->dn_oldused = odn->dn_oldused; |
712 ndn->dn_oldused = odn->dn_oldused; |
709 ndn->dn_oldflags = odn->dn_oldflags; |
713 ndn->dn_oldflags = odn->dn_oldflags; |
734 odn->dn_dbuf = NULL; |
738 odn->dn_dbuf = NULL; |
735 odn->dn_handle = NULL; |
739 odn->dn_handle = NULL; |
736 list_create(&odn->dn_dbufs, sizeof (dmu_buf_impl_t), |
740 list_create(&odn->dn_dbufs, sizeof (dmu_buf_impl_t), |
737 offsetof(dmu_buf_impl_t, db_link)); |
741 offsetof(dmu_buf_impl_t, db_link)); |
738 odn->dn_dbufs_count = 0; |
742 odn->dn_dbufs_count = 0; |
|
743 odn->dn_unlisted_l0_blkid = 0; |
739 odn->dn_bonus = NULL; |
744 odn->dn_bonus = NULL; |
740 odn->dn_zfetch.zf_dnode = NULL; |
745 odn->dn_zfetch.zf_dnode = NULL; |
741 |
746 |
742 /* |
747 /* |
743 * Set the low bit of the objset pointer to ensure that dnode_move() |
748 * Set the low bit of the objset pointer to ensure that dnode_move() |
1521 rw_enter(&dn->dn_struct_rwlock, RW_WRITER); |
1526 rw_enter(&dn->dn_struct_rwlock, RW_WRITER); |
1522 blksz = dn->dn_datablksz; |
1527 blksz = dn->dn_datablksz; |
1523 blkshift = dn->dn_datablkshift; |
1528 blkshift = dn->dn_datablkshift; |
1524 epbs = dn->dn_indblkshift - SPA_BLKPTRSHIFT; |
1529 epbs = dn->dn_indblkshift - SPA_BLKPTRSHIFT; |
1525 |
1530 |
1526 if (len == -1ULL) { |
1531 if (len == DMU_OBJECT_END) { |
1527 len = UINT64_MAX - off; |
1532 len = UINT64_MAX - off; |
1528 trunc = TRUE; |
1533 trunc = TRUE; |
1529 } |
1534 } |
1530 |
1535 |
1531 /* |
1536 /* |