search_rt_dup_extent expects an RT extent number and not a fsbno. Convert the units before the call. Without this we are unlikely to ever found a legit duplicate extent on the RT subvolume because the search will always be off the end. Signed-off-by: Christoph Hellwig <hch@xxxxxx> --- repair/scan.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/repair/scan.c b/repair/scan.c index 27a33286a..7a0587615 100644 --- a/repair/scan.c +++ b/repair/scan.c @@ -402,8 +402,10 @@ _("bad state %d, inode %" PRIu64 " bmap block 0x%" PRIx64 "\n"), XFS_FSB_TO_AGBNO(mp, bno) + 1)) return(1); } else { - if (search_rt_dup_extent(mp, bno)) - return(1); + xfs_rtblock_t ext = bno / mp->m_sb.sb_rextsize; + + if (search_rt_dup_extent(mp, ext)) + return 1; } } (*tot)++; -- 2.39.2