static int
 xfs_fsmap_owner_to_rmap(
        struct xfs_rmap_irec    *dest,
-       struct xfs_fsmap        *src)
+       const struct xfs_fsmap  *src)
 {
        if (!(src->fmr_flags & FMR_OF_SPECIAL_OWNER)) {
                dest->rm_owner = src->fmr_owner;
 struct xfs_getfsmap_dev {
        u32                     dev;
        int                     (*fn)(struct xfs_trans *tp,
-                                     struct xfs_fsmap *keys,
+                                     const struct xfs_fsmap *keys,
                                      struct xfs_getfsmap_info *info);
 };
 
 static void
 xfs_getfsmap_set_irec_flags(
        struct xfs_rmap_irec    *irec,
-       struct xfs_fsmap        *fmr)
+       const struct xfs_fsmap  *fmr)
 {
        irec->rm_flags = 0;
        if (fmr->fmr_flags & FMR_OF_ATTR_FORK)
 STATIC int
 xfs_getfsmap_logdev(
        struct xfs_trans                *tp,
-       struct xfs_fsmap                *keys,
+       const struct xfs_fsmap          *keys,
        struct xfs_getfsmap_info        *info)
 {
        struct xfs_mount                *mp = tp->t_mountp;
 STATIC int
 __xfs_getfsmap_rtdev(
        struct xfs_trans                *tp,
-       struct xfs_fsmap                *keys,
+       const struct xfs_fsmap          *keys,
        int                             (*query_fn)(struct xfs_trans *,
                                                    struct xfs_getfsmap_info *),
        struct xfs_getfsmap_info        *info)
        struct xfs_mount                *mp = tp->t_mountp;
        xfs_fsblock_t                   start_fsb;
        xfs_fsblock_t                   end_fsb;
-       xfs_daddr_t                     eofs;
+       uint64_t                        eofs;
        int                             error = 0;
 
        eofs = XFS_FSB_TO_BB(mp, mp->m_sb.sb_rblocks);
        if (keys[0].fmr_physical >= eofs)
                return 0;
-       if (keys[1].fmr_physical >= eofs)
-               keys[1].fmr_physical = eofs - 1;
        start_fsb = XFS_BB_TO_FSBT(mp, keys[0].fmr_physical);
-       end_fsb = XFS_BB_TO_FSB(mp, keys[1].fmr_physical);
+       end_fsb = XFS_BB_TO_FSB(mp, min(eofs - 1, keys[1].fmr_physical));
 
        /* Set up search keys */
        info->low.rm_startblock = start_fsb;
 STATIC int
 xfs_getfsmap_rtdev_rtbitmap(
        struct xfs_trans                *tp,
-       struct xfs_fsmap                *keys,
+       const struct xfs_fsmap          *keys,
        struct xfs_getfsmap_info        *info)
 {
        info->missing_owner = XFS_FMR_OWN_UNKNOWN;
 STATIC int
 __xfs_getfsmap_datadev(
        struct xfs_trans                *tp,
-       struct xfs_fsmap                *keys,
+       const struct xfs_fsmap          *keys,
        struct xfs_getfsmap_info        *info,
        int                             (*query_fn)(struct xfs_trans *,
                                                    struct xfs_getfsmap_info *,
        xfs_fsblock_t                   end_fsb;
        xfs_agnumber_t                  start_ag;
        xfs_agnumber_t                  end_ag;
-       xfs_daddr_t                     eofs;
+       uint64_t                        eofs;
        int                             error = 0;
 
        eofs = XFS_FSB_TO_BB(mp, mp->m_sb.sb_dblocks);
        if (keys[0].fmr_physical >= eofs)
                return 0;
-       if (keys[1].fmr_physical >= eofs)
-               keys[1].fmr_physical = eofs - 1;
        start_fsb = XFS_DADDR_TO_FSB(mp, keys[0].fmr_physical);
-       end_fsb = XFS_DADDR_TO_FSB(mp, keys[1].fmr_physical);
+       end_fsb = XFS_DADDR_TO_FSB(mp, min(eofs - 1, keys[1].fmr_physical));
 
        /*
         * Convert the fsmap low/high keys to AG based keys.  Initialize
 STATIC int
 xfs_getfsmap_datadev_rmapbt(
        struct xfs_trans                *tp,
-       struct xfs_fsmap                *keys,
+       const struct xfs_fsmap          *keys,
        struct xfs_getfsmap_info        *info)
 {
        info->missing_owner = XFS_FMR_OWN_FREE;
 STATIC int
 xfs_getfsmap_datadev_bnobt(
        struct xfs_trans                *tp,
-       struct xfs_fsmap                *keys,
+       const struct xfs_fsmap          *keys,
        struct xfs_getfsmap_info        *info)
 {
        struct xfs_alloc_rec_incore     akeys[2];