mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-23 02:44:41 +03:00
range_tree: Provide more debug details upon unexpected add/remove
Sponsored-by: Klara, Inc. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Alexander Motin <alexander.motin@TrueNAS.com> Signed-off-by: Igor Ostapenko <igor.ostapenko@klarasystems.com> Closes #17581
This commit is contained in:
+17
-2
@@ -86,6 +86,19 @@ int zfs_default_ibs = DN_MAX_INDBLKSHIFT;
|
||||
static kmem_cbrc_t dnode_move(void *, void *, size_t, void *);
|
||||
#endif /* _KERNEL */
|
||||
|
||||
static char *
|
||||
rt_name(dnode_t *dn, const char *name)
|
||||
{
|
||||
struct objset *os = dn->dn_objset;
|
||||
|
||||
return (kmem_asprintf("{spa=%s objset=%llu obj=%llu %s}",
|
||||
spa_name(os->os_spa),
|
||||
(u_longlong_t)(os->os_dsl_dataset ?
|
||||
os->os_dsl_dataset->ds_object : DMU_META_OBJSET),
|
||||
(u_longlong_t)dn->dn_object,
|
||||
name));
|
||||
}
|
||||
|
||||
static int
|
||||
dbuf_compare(const void *x1, const void *x2)
|
||||
{
|
||||
@@ -2436,8 +2449,10 @@ done:
|
||||
{
|
||||
int txgoff = tx->tx_txg & TXG_MASK;
|
||||
if (dn->dn_free_ranges[txgoff] == NULL) {
|
||||
dn->dn_free_ranges[txgoff] = zfs_range_tree_create(NULL,
|
||||
ZFS_RANGE_SEG64, NULL, 0, 0);
|
||||
dn->dn_free_ranges[txgoff] =
|
||||
zfs_range_tree_create_flags(
|
||||
NULL, ZFS_RANGE_SEG64, NULL, 0, 0,
|
||||
ZFS_RT_F_DYN_NAME, rt_name(dn, "dn_free_ranges"));
|
||||
}
|
||||
zfs_range_tree_clear(dn->dn_free_ranges[txgoff], blkid, nblks);
|
||||
zfs_range_tree_add(dn->dn_free_ranges[txgoff], blkid, nblks);
|
||||
|
||||
Reference in New Issue
Block a user