From: Darrick J. Wong <darrick.wong@xxxxxxxxxx> Replace this homegrown helper with its libxfs equivalent. Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> --- repair/attr_repair.c | 2 +- repair/dinode.c | 21 +-------------------- repair/dinode.h | 4 ---- repair/prefetch.c | 9 +++++---- repair/scan.c | 2 +- 5 files changed, 8 insertions(+), 30 deletions(-) diff --git a/repair/attr_repair.c b/repair/attr_repair.c index 5f884033..6cec0f70 100644 --- a/repair/attr_repair.c +++ b/repair/attr_repair.c @@ -1092,7 +1092,7 @@ process_longform_attr( } /* FIX FOR bug 653709 -- EKN */ - if (!xfs_verify_fsbno(mp, bno)) { + if (!libxfs_verify_fsbno(mp, bno)) { do_warn( _("block in attribute fork of inode %" PRIu64 " is not valid\n"), ino); return 1; diff --git a/repair/dinode.c b/repair/dinode.c index 135703d9..67adddd7 100644 --- a/repair/dinode.c +++ b/repair/dinode.c @@ -203,25 +203,6 @@ verify_aginum(xfs_mount_t *mp, return verify_ag_bno(sbp, agno, agbno); } -/* - * return 1 if block number is good, 0 if out of range - */ -int -verify_dfsbno(xfs_mount_t *mp, - xfs_fsblock_t fsbno) -{ - xfs_agnumber_t agno; - xfs_agblock_t agbno; - xfs_sb_t *sbp = &mp->m_sb;; - - /* range check ag #, ag block. range-checking offset is pointless */ - - agno = XFS_FSB_TO_AGNO(mp, fsbno); - agbno = XFS_FSB_TO_AGBNO(mp, fsbno); - - return verify_ag_bno(sbp, agno, agbno) == 0; -} - #define XR_DFSBNORANGE_VALID 0 #define XR_DFSBNORANGE_BADSTART 1 #define XR_DFSBNORANGE_BADEND 2 @@ -835,7 +816,7 @@ _("bad numrecs 0 in inode %" PRIu64 " bmap btree root block\n"), * btree, we'd do it right here. For now, if there's a * problem, we'll bail out and presumably clear the inode. */ - if (!verify_dfsbno(mp, get_unaligned_be64(&pp[i]))) { + if (!libxfs_verify_fsbno(mp, get_unaligned_be64(&pp[i]))) { do_warn( _("bad bmap btree ptr 0x%" PRIx64 " in ino %" PRIu64 "\n"), get_unaligned_be64(&pp[i]), lino); diff --git a/repair/dinode.h b/repair/dinode.h index c8e563b5..4bf7affd 100644 --- a/repair/dinode.h +++ b/repair/dinode.h @@ -9,10 +9,6 @@ struct blkmap; struct prefetch_args; -int -verify_dfsbno(xfs_mount_t *mp, - xfs_fsblock_t fsbno); - void convert_extent( xfs_bmbt_rec_t *rp, diff --git a/repair/prefetch.c b/repair/prefetch.c index 3ac49db1..686bf7be 100644 --- a/repair/prefetch.c +++ b/repair/prefetch.c @@ -188,8 +188,9 @@ pf_read_bmbt_reclist( (irec.br_startoff >= fs_max_file_offset)) goto out_free; - if (!verify_dfsbno(mp, irec.br_startblock) || !verify_dfsbno(mp, - irec.br_startblock + irec.br_blockcount - 1)) + if (!libxfs_verify_fsbno(mp, irec.br_startblock) || + !libxfs_verify_fsbno(mp, irec.br_startblock + + irec.br_blockcount - 1)) goto out_free; if (!args->dirs_only && ((irec.br_startoff + @@ -337,7 +338,7 @@ pf_scanfunc_bmap( for (i = 0; i < numrecs; i++) { dbno = get_unaligned_be64(&pp[i]); - if (!verify_dfsbno(mp, dbno)) + if (!libxfs_verify_fsbno(mp, dbno)) return 0; if (!pf_scan_lbtree(dbno, level, isadir, args, pf_scanfunc_bmap)) return 0; @@ -379,7 +380,7 @@ pf_read_btinode( for (i = 0; i < numrecs; i++) { dbno = get_unaligned_be64(&pp[i]); - if (!verify_dfsbno(mp, dbno)) + if (!libxfs_verify_fsbno(mp, dbno)) break; if (!pf_scan_lbtree(dbno, level, isadir, args, pf_scanfunc_bmap)) break; diff --git a/repair/scan.c b/repair/scan.c index 8e81c552..dcd4864d 100644 --- a/repair/scan.c +++ b/repair/scan.c @@ -491,7 +491,7 @@ _("inode %" PRIu64 " bad # of bmap records (%u, min - %u, max - %u)\n"), * we'd do it right here. For now, if there's a problem, * we'll bail out and presumably clear the inode. */ - if (!verify_dfsbno(mp, be64_to_cpu(pp[i]))) { + if (!libxfs_verify_fsbno(mp, be64_to_cpu(pp[i]))) { do_warn( _("bad bmap btree ptr 0x%llx in ino %" PRIu64 "\n"), (unsigned long long) be64_to_cpu(pp[i]), ino);