struct xfs_bui_log_item         *buip)
 {
        struct xfs_map_extent           *bmap;
-       xfs_fsblock_t                   startblock_fsb;
-       xfs_fsblock_t                   inode_fsb;
 
        /* Only one mapping operation per BUI... */
        if (buip->bui_format.bui_nextents != XFS_BUI_MAX_FAST_EXTENTS)
                return false;
 
        bmap = &buip->bui_format.bui_extents[0];
-       startblock_fsb = XFS_BB_TO_FSB(mp,
-                       XFS_FSB_TO_DADDR(mp, bmap->me_startblock));
-       inode_fsb = XFS_BB_TO_FSB(mp, XFS_FSB_TO_DADDR(mp,
-                       XFS_INO_TO_FSB(mp, bmap->me_owner)));
 
        if (bmap->me_flags & ~XFS_BMAP_EXTENT_FLAGS)
                return false;
                return false;
        }
 
-       if (startblock_fsb == 0 ||
-           bmap->me_len == 0 ||
-           inode_fsb == 0 ||
-           startblock_fsb >= mp->m_sb.sb_dblocks ||
-           bmap->me_len >= mp->m_sb.sb_agblocks ||
-           inode_fsb >= mp->m_sb.sb_dblocks ||
-           (bmap->me_flags & ~XFS_BMAP_EXTENT_FLAGS))
+       if (!xfs_verify_ino(mp, bmap->me_owner))
+               return false;
+
+       if (bmap->me_startoff + bmap->me_len <= bmap->me_startoff)
+               return false;
+
+       if (bmap->me_startblock + bmap->me_len <= bmap->me_startblock)
+               return false;
+
+       if (!xfs_verify_fsbno(mp, bmap->me_startblock))
+               return false;
+
+       if (!xfs_verify_fsbno(mp, bmap->me_startblock + bmap->me_len - 1))
                return false;
 
        return true;