From: Christoph Hellwig Date: Mon, 29 Jul 2024 23:22:33 +0000 (-0700) Subject: repair: btree blocks are never on the RT subvolume X-Git-Tag: v6.10.0~25^2~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=30aef7811a643e63a6013d7cd89cb74c6a92010b;p=thirdparty%2Fxfsprogs-dev.git 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 --- 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);