]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
repair: btree blocks are never on the RT subvolume
authorChristoph Hellwig <hch@lst.de>
Mon, 29 Jul 2024 23:22:33 +0000 (16:22 -0700)
committerDarrick J. Wong <djwong@kernel.org>
Tue, 30 Jul 2024 00:00:59 +0000 (17:00 -0700)
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 <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
repair/scan.c

index 338308ef82b6ad4022b4c4feb308a85742ae166f..8352b3ccff7d7e292ba5e5803de9146f09d275fb 100644 (file)
@@ -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);