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);