BRT: Don't call brt_pending_remove() on holes/embedded

We are doing exactly the same checks around all brt_pending_add().

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Pawel Jakub Dawidek <pjd@FreeBSD.org>
Reviewed-by: Brian Atkinson <batkinson@lanl.gov>
Signed-off-by: Alexander Motin <mav@FreeBSD.org>
Sponsored by: iXsystems, Inc.
Closes #16740
This commit is contained in:
Alexander Motin 2024-11-11 08:39:47 -05:00 committed by Tony Hutter
parent 1c7b70bcc0
commit 2bba6e3c54

View File

@ -2543,8 +2543,11 @@ dbuf_undirty(dmu_buf_impl_t *db, dmu_tx_t *tx)
* We are freeing a block that we cloned in the same * We are freeing a block that we cloned in the same
* transaction group. * transaction group.
*/ */
brt_pending_remove(dmu_objset_spa(db->db_objset), blkptr_t *bp = &dr->dt.dl.dr_overridden_by;
&dr->dt.dl.dr_overridden_by, tx); if (!BP_IS_HOLE(bp) && !BP_IS_EMBEDDED(bp)) {
brt_pending_remove(dmu_objset_spa(db->db_objset),
bp, tx);
}
} }
dnode_t *dn = dr->dr_dnode; dnode_t *dn = dr->dr_dnode;