From 30aef7811a643e63a6013d7cd89cb74c6a92010b Mon Sep 17 00:00:00 2001 From: Christoph Hellwig Date: Mon, 29 Jul 2024 16:22:33 -0700 Subject: [PATCH] repair: btree blocks are never on the RT subvolume scan_bmapbt tries to track btree blocks in the RT duplicate extent AVL tree if the inode has the realtime flag set. Given that the RT subvolume is only ever used for file data this is incorrect. Signed-off-by: Christoph Hellwig Reviewed-by: Darrick J. Wong Signed-off-by: Darrick J. Wong --- repair/scan.c | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/repair/scan.c b/repair/scan.c index 338308ef..8352b3cc 100644 --- a/repair/scan.c +++ b/repair/scan.c @@ -390,22 +390,11 @@ _("bad state %d, inode %" PRIu64 " bmap block 0x%" PRIx64 "\n"), break; } pthread_mutex_unlock(&ag_locks[agno].lock); - } else { - /* - * attribute fork for realtime files is in the regular - * filesystem - */ - if (type != XR_INO_RTDATA || whichfork != XFS_DATA_FORK) { - if (search_dup_extent(XFS_FSB_TO_AGNO(mp, bno), - XFS_FSB_TO_AGBNO(mp, bno), - XFS_FSB_TO_AGBNO(mp, bno) + 1)) - return(1); - } else { - xfs_rtxnum_t ext = xfs_rtb_to_rtx(mp, bno); - - if (search_rt_dup_extent(mp, ext)) - return 1; - } + } else { + if (search_dup_extent(XFS_FSB_TO_AGNO(mp, bno), + XFS_FSB_TO_AGBNO(mp, bno), + XFS_FSB_TO_AGBNO(mp, bno) + 1)) + return 1; } (*tot)++; numrecs = be16_to_cpu(block->bb_numrecs); -- 2.47.2