From: Christoph Hellwig Date: Thu, 15 Aug 2024 07:43:48 +0000 (+0200) Subject: repair: stop tracking duplicate RT extents with rtgroups X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=1be9dc395dd91b432ee21b51db3e03b142bdbeab;p=users%2Fhch%2Fxfsprogs.git repair: stop tracking duplicate RT extents with rtgroups Nothing ever looks them up, so don't bother with tracking them by overloading the AG numbers. Signed-off-by: Christoph Hellwig --- diff --git a/repair/incore_ext.c b/repair/incore_ext.c index a31ef066e..892f9d255 100644 --- a/repair/incore_ext.c +++ b/repair/incore_ext.c @@ -725,7 +725,7 @@ static avl64ops_t avl64_extent_tree_ops = { void incore_ext_init(xfs_mount_t *mp) { - xfs_agnumber_t agcount = mp->m_sb.sb_agcount + mp->m_sb.sb_rgcount; + xfs_agnumber_t agcount = mp->m_sb.sb_agcount; int i; pthread_mutex_init(&rt_ext_tree_lock, NULL); @@ -778,10 +778,9 @@ incore_ext_init(xfs_mount_t *mp) void incore_ext_teardown(xfs_mount_t *mp) { - xfs_agnumber_t agcount = mp->m_sb.sb_agcount + mp->m_sb.sb_rgcount; xfs_agnumber_t i; - for (i = 0; i < agcount; i++) { + for (i = 0; i < mp->m_sb.sb_agcount; i++) { btree_destroy(dup_extent_trees[i]); free(extent_bno_ptrs[i]); free(extent_bcnt_ptrs[i]); diff --git a/repair/phase4.c b/repair/phase4.c index 547199cea..8275e69ac 100644 --- a/repair/phase4.c +++ b/repair/phase4.c @@ -368,8 +368,12 @@ _("free space (%u,%u-%u) only seen by one free space btree\n"), case XR_E_FS_MAP: break; case XR_E_MULT: - add_dup_extent(agno + isrt ? mp->m_sb.sb_agcount : 0, - agbno, blen); + /* + * Nothing is searching for duplicate RT extents, so + * don't bother tracking them. + */ + if (!isrt) + add_dup_extent(agno, agbno, blen); break; case XR_E_BAD_STATE: default: