mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-30 10:44:09 +03:00
Cleanup DB_DNODE() macros usage
- Use the macros in few places it was missed. - Reduce scope of DB_DNODE_ENTER/EXIT() and inline some DB_DNODE() uses to make it more obvious what exactly is protected there and make unprotected accesses by mistake more difficult. - Make use of zrl_owner(). Reviewed-by: Rob Wing <rob.wing@klarasystems.com Reviewed-by: Tony Hutter <hutter2@llnl.gov> Reviewed-by: Allan Jude <allan@klarasystems.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Alexander Motin <mav@FreeBSD.org> Sponsored by: iXsystems, Inc. Closes #16374
This commit is contained in:
committed by
Tony Hutter
parent
baa5031456
commit
56608daa8d
+4
-7
@@ -4332,7 +4332,7 @@ dbuf_lightweight_bp(dbuf_dirty_record_t *dr)
|
||||
dmu_buf_impl_t *parent_db = dr->dr_parent->dr_dbuf;
|
||||
int epbs = dn->dn_indblkshift - SPA_BLKPTRSHIFT;
|
||||
VERIFY3U(parent_db->db_level, ==, 1);
|
||||
VERIFY3P(parent_db->db_dnode_handle->dnh_dnode, ==, dn);
|
||||
VERIFY3P(DB_DNODE(parent_db), ==, dn);
|
||||
VERIFY3U(dr->dt.dll.dr_blkid >> epbs, ==, parent_db->db_blkid);
|
||||
blkptr_t *bp = parent_db->db.db_data;
|
||||
return (&bp[dr->dt.dll.dr_blkid & ((1 << epbs) - 1)]);
|
||||
@@ -4751,14 +4751,13 @@ dbuf_write_children_ready(zio_t *zio, arc_buf_t *buf, void *vdb)
|
||||
{
|
||||
(void) zio, (void) buf;
|
||||
dmu_buf_impl_t *db = vdb;
|
||||
dnode_t *dn;
|
||||
blkptr_t *bp;
|
||||
unsigned int epbs, i;
|
||||
|
||||
ASSERT3U(db->db_level, >, 0);
|
||||
DB_DNODE_ENTER(db);
|
||||
dn = DB_DNODE(db);
|
||||
epbs = dn->dn_phys->dn_indblkshift - SPA_BLKPTRSHIFT;
|
||||
epbs = DB_DNODE(db)->dn_phys->dn_indblkshift - SPA_BLKPTRSHIFT;
|
||||
DB_DNODE_EXIT(db);
|
||||
ASSERT3U(epbs, <, 31);
|
||||
|
||||
/* Determine if all our children are holes */
|
||||
@@ -4781,7 +4780,6 @@ dbuf_write_children_ready(zio_t *zio, arc_buf_t *buf, void *vdb)
|
||||
memset(db->db.db_data, 0, db->db.db_size);
|
||||
rw_exit(&db->db_rwlock);
|
||||
}
|
||||
DB_DNODE_EXIT(db);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -4999,8 +4997,7 @@ dbuf_remap(dnode_t *dn, dmu_buf_impl_t *db, dmu_tx_t *tx)
|
||||
}
|
||||
} else if (db->db.db_object == DMU_META_DNODE_OBJECT) {
|
||||
dnode_phys_t *dnp = db->db.db_data;
|
||||
ASSERT3U(db->db_dnode_handle->dnh_dnode->dn_type, ==,
|
||||
DMU_OT_DNODE);
|
||||
ASSERT3U(dn->dn_type, ==, DMU_OT_DNODE);
|
||||
for (int i = 0; i < db->db.db_size >> DNODE_SHIFT;
|
||||
i += dnp[i].dn_extra_slots + 1) {
|
||||
for (int j = 0; j < dnp[i].dn_nblkptr; j++) {
|
||||
|
||||
Reference in New Issue
Block a user