• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/sys/contrib/openzfs/module/zfs/

Lines Matching refs:dn

351 	dnode_t *dn;
354 if (dnode_hold(os, object, FTAG, &dn) == 0) {
355 rw_enter(&dn->dn_struct_rwlock, RW_READER);
356 if (dn->dn_bonus != NULL) {
357 db = dn->dn_bonus;
360 rw_exit(&dn->dn_struct_rwlock);
361 dnode_rele(dn, FTAG);
921 dnode_t *dn;
932 dn = DB_DNODE(db);
933 if (dn == NULL) {
937 ASSERT3U(db->db.db_object, ==, dn->dn_object);
938 ASSERT3P(db->db_objset, ==, dn->dn_objset);
939 ASSERT3U(db->db_level, <, dn->dn_nlevels);
942 !avl_is_empty(&dn->dn_dbufs));
945 ASSERT(dn != NULL);
946 ASSERT3U(db->db.db_size, >=, dn->dn_bonuslen);
949 ASSERT(dn != NULL);
982 if (db->db_parent == dn->dn_dbuf) {
984 /* ASSERT3U(db->db_blkid, <, dn->dn_nblkptr); */
991 &dn->dn_phys->dn_blkptr[db->db_blkid]);
1014 db->db_state != DB_FILL && !dn->dn_free_txg) {
1113 dnode_t *dn = DB_DNODE(db);
1117 byteorder, salt, iv, mac, dn->dn_type, psize, lsize,
1169 dbuf_whichblock(const dnode_t *dn, const int64_t level, const uint64_t offset)
1171 if (dn->dn_datablkshift != 0 && dn->dn_indblkshift != 0) {
1192 const unsigned exp = dn->dn_datablkshift +
1193 level * (dn->dn_indblkshift - SPA_BLKPTRSHIFT);
1197 ASSERT3U(level, ==, dn->dn_nlevels - 1);
1205 ASSERT3U(offset, <, dn->dn_datablksz);
1296 dbuf_read_bonus(dmu_buf_impl_t *db, dnode_t *dn, uint32_t flags)
1304 bonuslen = MIN(dn->dn_bonuslen, dn->dn_phys->dn_bonuslen);
1305 max_bonuslen = DN_SLOTS_TO_BONUSLEN(dn->dn_num_slots);
1314 bcopy(DN_BONUS(dn->dn_phys), db->db.db_data, bonuslen);
1321 dbuf_handle_indirect_hole(dmu_buf_impl_t *db, dnode_t *dn)
1324 uint32_t indbs = 1ULL << dn->dn_indblkshift;
1332 dn->dn_datablksz : BP_GET_LSIZE(db->db_blkptr));
1345 dbuf_read_hole(dmu_buf_impl_t *db, dnode_t *dn, uint32_t flags)
1357 is_hole = dnode_block_freed(dn, db->db_blkid) ||
1368 dbuf_handle_indirect_hole(db, dn);
1395 dnode_t *dn;
1405 dn = DB_DNODE(db);
1406 dnode_abuf = (dn->dn_dbuf != NULL) ? dn->dn_dbuf->db_buf : NULL;
1414 DMU_META_DNODE_OBJECT, 0, dn->dn_dbuf->db_blkid);
1423 !DMU_OT_IS_ENCRYPTED(dn->dn_type)) ||
1425 !DMU_OT_IS_ENCRYPTED(dn->dn_bonustype))))
1441 dnode_t *dn;
1450 dn = DB_DNODE(db);
1459 err = dbuf_read_bonus(db, dn, flags);
1463 err = dbuf_read_hole(db, dn, flags);
1572 dnode_t *dn = DB_DNODE(db);
1573 int bonuslen = DN_SLOTS_TO_BONUSLEN(dn->dn_num_slots);
1592 dnode_t *dn;
1604 dn = DB_DNODE(db);
1607 (flags & DB_RF_NOPREFETCH) == 0 && dn != NULL &&
1612 spa_t *spa = dn->dn_objset->os_spa;
1642 dmu_zfetch(&dn->dn_zfetch, db->db_blkid, 1, B_TRUE,
1648 spa_t *spa = dn->dn_objset->os_spa;
1664 dmu_zfetch(&dn->dn_zfetch, db->db_blkid, 1, B_TRUE,
1694 dmu_zfetch(&dn->dn_zfetch, db->db_blkid, 1, B_TRUE,
1789 dbuf_free_range(dnode_t *dn, uint64_t start_blkid, uint64_t end_blkid,
1798 if (end_blkid > dn->dn_maxblkid &&
1800 end_blkid = dn->dn_maxblkid;
1801 dprintf_dnode(dn, "start=%llu end=%llu\n", start_blkid, end_blkid);
1808 mutex_enter(&dn->dn_dbufs_mtx);
1809 db = avl_find(&dn->dn_dbufs, db_search, &where);
1812 db = avl_nearest(&dn->dn_dbufs, where, AVL_AFTER);
1815 db_next = AVL_NEXT(&dn->dn_dbufs, db);
1859 db->db_blkid > dn->dn_maxblkid)
1860 dn->dn_maxblkid = db->db_blkid;
1886 mutex_exit(&dn->dn_dbufs_mtx);
1896 dnode_t *dn;
1901 dn = DB_DNODE(db);
1910 buf = arc_alloc_buf(dn->dn_objset->os_spa, db, type, size);
1934 dmu_objset_willuse_space(dn->dn_objset, size - osize, tx);
1978 dbuf_dirty_lightweight(dnode_t *dn, uint64_t blkid, dmu_tx_t *tx)
1980 rw_enter(&dn->dn_struct_rwlock, RW_READER);
1981 IMPLY(dn->dn_objset->os_raw_receive, dn->dn_maxblkid >= blkid);
1982 dnode_new_blkid(dn, blkid, tx, B_TRUE, B_FALSE);
1983 ASSERT(dn->dn_maxblkid >= blkid);
1988 dr->dr_dnode = dn;
1991 dr->dr_accounted = dn->dn_datablksz;
1998 ASSERT3P(NULL, ==, dbuf_find(dn->dn_objset, dn->dn_object, 0, blkid));
2000 mutex_enter(&dn->dn_mtx);
2002 if (dn->dn_free_ranges[txgoff] != NULL) {
2003 range_tree_clear(dn->dn_free_ranges[txgoff], blkid, 1);
2006 if (dn->dn_nlevels == 1) {
2007 ASSERT3U(blkid, <, dn->dn_nblkptr);
2008 list_insert_tail(&dn->dn_dirty_records[txgoff], dr);
2009 mutex_exit(&dn->dn_mtx);
2010 rw_exit(&dn->dn_struct_rwlock);
2011 dnode_setdirty(dn, tx);
2013 mutex_exit(&dn->dn_mtx);
2015 int epbs = dn->dn_indblkshift - SPA_BLKPTRSHIFT;
2016 dmu_buf_impl_t *parent_db = dbuf_hold_level(dn,
2018 rw_exit(&dn->dn_struct_rwlock);
2040 dmu_objset_willuse_space(dn->dn_objset, dr->dr_accounted, tx);
2048 dnode_t *dn;
2059 dn = DB_DNODE(db);
2066 if (dn->dn_objset->os_dsl_dataset != NULL) {
2067 rrw_enter(&dn->dn_objset->os_dsl_dataset->ds_bp_rwlock,
2071 BP_IS_HOLE(dn->dn_objset->os_rootbp) ||
2072 DMU_OBJECT_IS_SPECIAL(dn->dn_object) ||
2073 dn->dn_objset->os_dsl_dataset == NULL);
2074 if (dn->dn_objset->os_dsl_dataset != NULL)
2075 rrw_exit(&dn->dn_objset->os_dsl_dataset->ds_bp_rwlock, FTAG);
2082 ASSERT(dn->dn_object == DMU_META_DNODE_OBJECT ||
2083 dn->dn_dirtyctx == DN_UNDIRTIED || dn->dn_dirtyctx ==
2096 mutex_enter(&dn->dn_mtx);
2097 dnode_set_dirtyctx(dn, tx, db);
2098 if (tx->tx_txg > dn->dn_dirty_txg)
2099 dn->dn_dirty_txg = tx->tx_txg;
2100 mutex_exit(&dn->dn_mtx);
2103 dn->dn_have_spill = B_TRUE;
2123 ASSERT(dn->dn_object == 0 ||
2124 dn->dn_dirtyctx == DN_UNDIRTIED || dn->dn_dirtyctx ==
2127 ASSERT3U(dn->dn_nlevels, >, db->db_level);
2136 os = dn->dn_objset;
2139 if (dn->dn_objset->os_dsl_dataset != NULL)
2141 ASSERT(!dmu_tx_is_syncing(tx) || DMU_OBJECT_IS_SPECIAL(dn->dn_object) ||
2143 if (dn->dn_objset->os_dsl_dataset != NULL)
2162 dr->dr_dnode = dn;
2206 mutex_enter(&dn->dn_mtx);
2207 if (dn->dn_free_ranges[txgoff] != NULL) {
2208 range_tree_clear(dn->dn_free_ranges[txgoff],
2211 mutex_exit(&dn->dn_mtx);
2226 mutex_enter(&dn->dn_mtx);
2228 list_insert_tail(&dn->dn_dirty_records[txgoff], dr);
2229 mutex_exit(&dn->dn_mtx);
2230 dnode_setdirty(dn, tx);
2235 if (!RW_WRITE_HELD(&dn->dn_struct_rwlock)) {
2236 rw_enter(&dn->dn_struct_rwlock, RW_READER);
2256 ASSERT((dn->dn_phys->dn_nlevels == 0 && db->db_level == 0) ||
2257 dn->dn_phys->dn_nlevels > db->db_level ||
2258 dn->dn_next_nlevels[txgoff] > db->db_level ||
2259 dn->dn_next_nlevels[(tx->tx_txg-1) & TXG_MASK] > db->db_level ||
2260 dn->dn_next_nlevels[(tx->tx_txg-2) & TXG_MASK] > db->db_level);
2265 dn->dn_maxblkid >= db->db_blkid);
2266 dnode_new_blkid(dn, db->db_blkid, tx,
2268 ASSERT(dn->dn_maxblkid >= db->db_blkid);
2271 if (db->db_level+1 < dn->dn_nlevels) {
2276 if (db->db_parent == NULL || db->db_parent == dn->dn_dbuf) {
2277 int epbs = dn->dn_indblkshift - SPA_BLKPTRSHIFT;
2278 parent = dbuf_hold_level(dn, db->db_level + 1,
2284 rw_exit(&dn->dn_struct_rwlock);
2296 dn->dn_object == DMU_META_DNODE_OBJECT) {
2306 ASSERT(db->db_level + 1 == dn->dn_nlevels);
2307 ASSERT(db->db_blkid < dn->dn_nblkptr);
2308 ASSERT(db->db_parent == NULL || db->db_parent == dn->dn_dbuf);
2309 mutex_enter(&dn->dn_mtx);
2311 list_insert_tail(&dn->dn_dirty_records[txgoff], dr);
2312 mutex_exit(&dn->dn_mtx);
2314 rw_exit(&dn->dn_struct_rwlock);
2317 dnode_setdirty(dn, tx);
2328 struct dnode *dn = dr->dr_dnode;
2329 int max_bonuslen = DN_SLOTS_TO_BONUSLEN(dn->dn_num_slots);
2378 dnode_t *dn = dr->dr_dnode;
2384 dsl_pool_undirty_space(dmu_objset_pool(dn->dn_objset),
2400 db->db_level + 1 == dn->dn_nlevels) {
2401 ASSERT(db->db_blkptr == NULL || db->db_parent == dn->dn_dbuf);
2402 mutex_enter(&dn->dn_mtx);
2403 list_remove(&dn->dn_dirty_records[txg & TXG_MASK], dr);
2404 mutex_exit(&dn->dn_mtx);
2731 dnode_t *dn;
2792 dn = DB_DNODE(db);
2793 dndb = dn->dn_dbuf;
2795 boolean_t needlock = !MUTEX_HELD(&dn->dn_dbufs_mtx);
2797 mutex_enter_nested(&dn->dn_dbufs_mtx,
2799 avl_remove(&dn->dn_dbufs, db);
2803 mutex_exit(&dn->dn_dbufs_mtx);
2812 mutex_enter(&dn->dn_mtx);
2813 dnode_rele_and_unlock(dn, db, B_TRUE);
2854 dbuf_findbp(dnode_t *dn, int level, uint64_t blkid, int fail_sparse,
2863 mutex_enter(&dn->dn_mtx);
2864 if (dn->dn_have_spill &&
2865 (dn->dn_phys->dn_flags & DNODE_FLAG_SPILL_BLKPTR))
2866 *bpp = DN_SPILL_BLKPTR(dn->dn_phys);
2869 dbuf_add_ref(dn->dn_dbuf, NULL);
2870 *parentp = dn->dn_dbuf;
2871 mutex_exit(&dn->dn_mtx);
2876 (dn->dn_phys->dn_nlevels == 0) ? 1 : dn->dn_phys->dn_nlevels;
2877 int epbs = dn->dn_indblkshift - SPA_BLKPTRSHIFT;
2880 ASSERT(RW_LOCK_HELD(&dn->dn_struct_rwlock));
2898 highbit64(dn->dn_phys->dn_nblkptr) <= 64);
2900 blkid >= ((uint64_t)dn->dn_phys->dn_nblkptr <<
2903 blkid > (dn->dn_phys->dn_maxblkid >> (level * epbs)))) {
2910 err = dbuf_hold_impl(dn, level + 1,
2925 if (blkid > (dn->dn_phys->dn_maxblkid >> (level * epbs)))
2932 ASSERT(dn->dn_phys->dn_nblkptr == 0 ||
2933 blkid < dn->dn_phys->dn_nblkptr);
2934 if (dn->dn_dbuf) {
2935 dbuf_add_ref(dn->dn_dbuf, NULL);
2936 *parentp = dn->dn_dbuf;
2938 *bpp = &dn->dn_phys->dn_blkptr[blkid];
2944 dbuf_create(dnode_t *dn, uint8_t level, uint64_t blkid,
2947 objset_t *os = dn->dn_objset;
2950 ASSERT(RW_LOCK_HELD(&dn->dn_struct_rwlock));
2951 ASSERT(dn->dn_type != DMU_OT_NONE);
2959 db->db.db_object = dn->dn_object;
2963 db->db_dnode_handle = dn->dn_handle;
2973 ASSERT3P(parent, ==, dn->dn_dbuf);
2974 db->db.db_size = DN_SLOTS_TO_BONUSLEN(dn->dn_num_slots) -
2975 (dn->dn_nblkptr-1) * sizeof (blkptr_t);
2976 ASSERT3U(db->db.db_size, >=, dn->dn_bonuslen);
2990 db->db_level ? 1 << dn->dn_indblkshift : dn->dn_datablksz;
3002 mutex_enter(&dn->dn_dbufs_mtx);
3007 mutex_exit(&dn->dn_dbufs_mtx);
3011 avl_add(&dn->dn_dbufs, db);
3016 mutex_exit(&dn->dn_dbufs_mtx);
3019 if (parent && parent != dn->dn_dbuf)
3022 ASSERT(dn->dn_object == DMU_META_DNODE_OBJECT ||
3023 zfs_refcount_count(&dn->dn_holds) > 0);
3024 (void) zfs_refcount_add(&dn->dn_holds, db);
3039 dbuf_dnode_findbp(dnode_t *dn, uint64_t level, uint64_t blkid,
3045 ASSERT(RW_LOCK_HELD(&dn->dn_struct_rwlock));
3047 err = dbuf_findbp(dn, level, blkid, B_FALSE, &dbp, &bp2);
3053 *datablkszsec = dn->dn_phys->dn_datablkszsec;
3055 *indblkshift = dn->dn_phys->dn_indblkshift;
3226 dbuf_prefetch_impl(dnode_t *dn, int64_t level, uint64_t blkid,
3235 ASSERT(RW_LOCK_HELD(&dn->dn_struct_rwlock));
3237 if (blkid > dn->dn_maxblkid)
3240 if (level == 0 && dnode_block_freed(dn, blkid))
3247 nlevels = dn->dn_phys->dn_nlevels;
3248 if (level >= nlevels || dn->dn_phys->dn_nblkptr == 0)
3251 epbs = dn->dn_phys->dn_indblkshift - SPA_BLKPTRSHIFT;
3252 if (dn->dn_phys->dn_maxblkid < blkid << (epbs * level))
3255 dmu_buf_impl_t *db = dbuf_find(dn->dn_objset, dn->dn_object,
3278 if (dbuf_hold_impl(dn, parent_level, parent_blkid,
3292 ASSERT3U(curblkid, <, dn->dn_phys->dn_nblkptr);
3293 bp = dn->dn_phys->dn_blkptr[curblkid];
3296 dsl_dataset_feature_is_active(dn->dn_objset->os_dsl_dataset,
3303 zio_t *pio = zio_root(dmu_objset_spa(dn->dn_objset), NULL, NULL,
3307 dsl_dataset_t *ds = dn->dn_objset->os_dsl_dataset;
3309 dn->dn_object, level, blkid);
3313 dpa->dpa_spa = dn->dn_objset->os_spa;
3314 dpa->dpa_dnode = dn;
3321 if (DNODE_LEVEL_IS_L2CACHEABLE(dn, level))
3339 if (DNODE_LEVEL_IS_L2CACHEABLE(dn, level))
3343 dn->dn_object, curlevel, curblkid);
3362 dbuf_prefetch(dnode_t *dn, int64_t level, uint64_t blkid, zio_priority_t prio,
3366 return (dbuf_prefetch_impl(dn, level, blkid, prio, aflags, NULL, NULL));
3378 dbuf_hold_copy(dnode_t *dn, dmu_buf_impl_t *db)
3395 dbuf_hold_impl(dnode_t *dn, uint8_t level, uint64_t blkid,
3402 spa_t *spa = dn->dn_objset->os_spa;
3409 ASSERT(RW_LOCK_HELD(&dn->dn_struct_rwlock));
3410 ASSERT3U(dn->dn_nlevels, >, level);
3415 db = dbuf_find(dn->dn_objset, dn->dn_object, level, blkid);
3425 err = dbuf_findbp(dn, level, blkid, fail_sparse, &parent, &bp);
3437 db = dbuf_create(dn, level, blkid, parent, bp);
3458 dn->dn_object != DMU_META_DNODE_OBJECT &&
3462 dbuf_hold_copy(dn, db);
3493 ASSERT3P(DB_DNODE(db), ==, dn);
3502 dbuf_hold(dnode_t *dn, uint64_t blkid, void *tag)
3504 return (dbuf_hold_level(dn, 0, blkid, tag));
3508 dbuf_hold_level(dnode_t *dn, int level, uint64_t blkid, void *tag)
3511 int err = dbuf_hold_impl(dn, level, blkid, FALSE, FALSE, tag, &db);
3516 dbuf_create_bonus(dnode_t *dn)
3518 ASSERT(RW_WRITE_HELD(&dn->dn_struct_rwlock));
3520 ASSERT(dn->dn_bonus == NULL);
3521 dn->dn_bonus = dbuf_create(dn, 0, DMU_BONUS_BLKID, dn->dn_dbuf, NULL);
3542 dbuf_rm_spill(dnode_t *dn, dmu_tx_t *tx)
3544 dbuf_free_range(dn, DMU_SPILL_BLKID, DMU_SPILL_BLKID, tx);
3644 dnode_t *dn;
3653 dn = DB_DNODE(db);
3654 atomic_dec_32(&dn->dn_dbufs_count);
3671 dnode_evict_bonus(dn);
3673 dnode_rele(dn, db);
3852 dbuf_check_blkptr(dnode_t *dn, dmu_buf_impl_t *db)
3861 db->db_blkptr = DN_SPILL_BLKPTR(dn->dn_phys);
3865 if (db->db_level == dn->dn_phys->dn_nlevels-1) {
3871 ASSERT(db->db_blkid < dn->dn_phys->dn_nblkptr);
3873 db->db_parent = dn->dn_dbuf;
3874 db->db_blkptr = &dn->dn_phys->dn_blkptr[db->db_blkid];
3878 int epbs = dn->dn_phys->dn_indblkshift - SPA_BLKPTRSHIFT;
3880 ASSERT(dn->dn_phys->dn_nlevels > 1);
3883 rw_enter(&dn->dn_struct_rwlock, RW_READER);
3884 parent = dbuf_hold_level(dn, db->db_level + 1,
3886 rw_exit(&dn->dn_struct_rwlock);
3907 dnode_t *dn = dr->dr_dnode;
3908 ASSERT3U(DN_MAX_BONUS_LEN(dn->dn_phys), <=,
3909 DN_SLOTS_TO_BONUSLEN(dn->dn_phys->dn_extra_slots + 1));
3910 bcopy(data, DN_BONUS(dn->dn_phys), DN_MAX_BONUS_LEN(dn->dn_phys));
3969 dnode_t *dn = dr->dr_dnode;
3990 ASSERT3U(db->db.db_size, ==, 1<<dn->dn_phys->dn_indblkshift);
3991 dbuf_check_blkptr(dn, db);
4025 dnode_t *dn = dr->dr_dnode;
4031 if (DMU_OT_IS_ENCRYPTED(dn->dn_bonustype))
4034 uint16_t bonuslen = dn->dn_phys->dn_bonuslen;
4035 uint16_t maxbonuslen = DN_SLOTS_TO_BONUSLEN(dn->dn_num_slots);
4053 dnode_t *dn = dr->dr_dnode;
4055 if (dn->dn_phys->dn_nlevels == 1) {
4056 VERIFY3U(dr->dt.dll.dr_blkid, <, dn->dn_phys->dn_nblkptr);
4057 return (&dn->dn_phys->dn_blkptr[dr->dt.dll.dr_blkid]);
4060 int epbs = dn->dn_indblkshift - SPA_BLKPTRSHIFT;
4062 VERIFY3P(parent_db->db_dnode_handle->dnh_dnode, ==, dn);
4078 dnode_t *dn = dr->dr_dnode;
4081 spa_t *spa = dmu_objset_spa(dn->dn_objset);
4084 dnode_diduse_space(dn, delta);
4087 mutex_enter(&dn->dn_mtx);
4088 if (blkid > dn->dn_phys->dn_maxblkid) {
4089 ASSERT0(dn->dn_objset->os_raw_receive);
4090 dn->dn_phys->dn_maxblkid = blkid;
4092 mutex_exit(&dn->dn_mtx);
4100 EQUIV(dr->dr_parent == NULL, dn->dn_phys->dn_nlevels == 1);
4102 parent_db = dn->dn_dbuf;
4163 dnode_t *dn = dr->dr_dnode;
4165 if (dn->dn_phys->dn_nlevels == 1) {
4166 pio = dn->dn_zio;
4172 .zb_objset = dmu_objset_id(dn->dn_objset),
4173 .zb_object = dn->dn_object,
4184 dr->dr_zio = zio_write(pio, dmu_objset_spa(dn->dn_objset),
4186 dn->dn_datablksz, abd_get_size(dr->dt.dll.dr_abd),
4205 dnode_t *dn = dr->dr_dnode;
4230 mutex_enter(&dn->dn_mtx);
4231 if (!(dn->dn_phys->dn_flags & DNODE_FLAG_SPILL_BLKPTR)) {
4247 dn->dn_phys->dn_flags |= DNODE_FLAG_SPILL_BLKPTR;
4248 mutex_exit(&dn->dn_mtx);
4263 os = dn->dn_objset;
4271 dbuf_check_blkptr(dn, db);
4278 ASSERT(dn->dn_object != DMU_META_DNODE_OBJECT);
4287 if (os->os_encrypted && dn->dn_object == DMU_META_DNODE_OBJECT)
4291 dn->dn_object != DMU_META_DNODE_OBJECT &&
4316 if (dn->dn_object == DMU_META_DNODE_OBJECT) {
4317 list_insert_tail(&dn->dn_dirty_records[txg & TXG_MASK], dr);
4362 dnode_t *dn;
4374 dn = DB_DNODE(db);
4376 dnode_diduse_space(dn, delta - zio->io_prev_space_delta);
4381 BP_GET_TYPE(bp) == dn->dn_type) ||
4383 BP_GET_TYPE(bp) == dn->dn_bonustype) ||
4392 ASSERT(dn->dn_phys->dn_flags & DNODE_FLAG_SPILL_BLKPTR);
4394 db->db_blkptr == DN_SPILL_BLKPTR(dn->dn_phys));
4399 mutex_enter(&dn->dn_mtx);
4400 if (db->db_blkid > dn->dn_phys->dn_maxblkid &&
4403 dn->dn_phys->dn_maxblkid = db->db_blkid;
4405 mutex_exit(&dn->dn_mtx);
4407 if (dn->dn_type == DMU_OT_DNODE) {
4429 ASSERT3U(db->db.db_size, ==, 1<<dn->dn_phys->dn_indblkshift);
4460 dnode_t *dn;
4466 dn = DB_DNODE(db);
4467 epbs = dn->dn_phys->dn_indblkshift - SPA_BLKPTRSHIFT;
4554 dnode_t *dn = dr->dr_dnode;
4562 ASSERT(dn->dn_phys->dn_flags & DNODE_FLAG_SPILL_BLKPTR);
4564 db->db_blkptr == DN_SPILL_BLKPTR(dn->dn_phys));
4577 ASSERT3U(db->db.db_size, ==, 1 << dn->dn_phys->dn_indblkshift);
4579 int epbs __maybe_unused = dn->dn_phys->dn_indblkshift -
4582 dn->dn_phys->dn_maxblkid >> (db->db_level * epbs));
4689 dbuf_remap_impl(dnode_t *dn, blkptr_t *bp, krwlock_t *rw, dmu_tx_t *tx)
4692 spa_t *spa = dmu_objset_spa(dn->dn_objset);
4697 drica.drica_os = dn->dn_objset;
4710 if (dn->dn_objset != spa_meta_objset(spa)) {
4711 dsl_dataset_t *ds = dmu_objset_ds(dn->dn_objset);
4743 dbuf_remap(dnode_t *dn, dmu_buf_impl_t *db, dmu_tx_t *tx)
4754 dbuf_remap_impl(dn, &bp[i], &db->db_rwlock, tx);
4763 krwlock_t *lock = (dn->dn_dbuf == NULL ? NULL :
4764 &dn->dn_dbuf->db_rwlock);
4765 dbuf_remap_impl(dn, &dnp[i].dn_blkptr[j], lock,
4778 dnode_t *dn = dr->dr_dnode;
4789 os = dn->dn_objset;
4792 if (db->db_level > 0 || dn->dn_type == DMU_OT_DNODE) {
4804 dbuf_remap(dn, db, tx);
4808 if (parent != dn->dn_dbuf) {
4822 ASSERT((db->db_level == dn->dn_phys->dn_nlevels-1 &&
4827 &dn->dn_phys->dn_blkptr[db->db_blkid]);
4828 pio = dn->dn_zio;
4843 dmu_write_policy(os, dn, db->db_level, wp_flag, &zp);