From 7551ccb53ed616cfda5eeaedf95f0e4dfbb41a62 Mon Sep 17 00:00:00 2001 From: Alexander Motin <mav@FreeBSD.org> Date: Thu, 21 Nov 2024 11:20:22 -0500 Subject: [PATCH] BRT: Clear bv_entcount_dirty on destroy This fixes assertion in brt_sync_table() on debug builds when last cloned block on the vdev is freed and bv_meta_dirty is cleared, while bv_entcount_dirty is not. Should not matter in production. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Alexander Motin <mav@FreeBSD.org> Sponsored by: iXsystems, Inc. Closes #16791 --- module/zfs/brt.c | 1 + 1 file changed, 1 insertion(+) diff --git a/module/zfs/brt.c b/module/zfs/brt.c index c48527db7d17..9afee4e208ec 100644 --- a/module/zfs/brt.c +++ b/module/zfs/brt.c @@ -642,6 +642,7 @@ brt_vdev_destroy(spa_t *spa, brt_vdev_t *brtvd, dmu_tx_t *tx) BRT_DEBUG("MOS BRT VDEV destroyed, object=%llu", (u_longlong_t)brtvd->bv_mos_brtvdev); brtvd->bv_mos_brtvdev = 0; + brtvd->bv_entcount_dirty = FALSE; snprintf(name, sizeof (name), "%s%llu", BRT_OBJECT_VDEV_PREFIX, (u_longlong_t)brtvd->bv_vdevid);