From: Christoph Hellwig Date: Sun, 22 Feb 2026 22:40:59 +0000 (-0800) Subject: xfs: add a xfs_groups_to_rfsbs helper X-Git-Tag: v6.19.0~17 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=2fbd34e77b7f59f042b3f84de0d5f5adc3c79c7e;p=xfsprogs-dev.git xfs: add a xfs_groups_to_rfsbs helper Source kernel commit: 0ec73eb3f12350799c4b3fb764225f6e38b42d1e Plus a rtgroup wrapper and use that to avoid overflows when converting zone/rtg counts to block counts. Signed-off-by: Christoph Hellwig Reviewed-by: Darrick J. Wong Signed-off-by: Carlos Maiolino --- diff --git a/libxfs/xfs_group.h b/libxfs/xfs_group.h index 4423932a..4ae638f1 100644 --- a/libxfs/xfs_group.h +++ b/libxfs/xfs_group.h @@ -98,6 +98,15 @@ xfs_group_max_blocks( return xg->xg_mount->m_groups[xg->xg_type].blocks; } +static inline xfs_rfsblock_t +xfs_groups_to_rfsbs( + struct xfs_mount *mp, + uint32_t nr_groups, + enum xfs_group_type type) +{ + return (xfs_rfsblock_t)mp->m_groups[type].blocks * nr_groups; +} + static inline xfs_fsblock_t xfs_group_start_fsb( struct xfs_group *xg) diff --git a/libxfs/xfs_rtgroup.h b/libxfs/xfs_rtgroup.h index d4fcf591..a94e925a 100644 --- a/libxfs/xfs_rtgroup.h +++ b/libxfs/xfs_rtgroup.h @@ -371,4 +371,12 @@ static inline int xfs_initialize_rtgroups(struct xfs_mount *mp, # define xfs_rtgroup_get_geometry(rtg, rgeo) (-EOPNOTSUPP) #endif /* CONFIG_XFS_RT */ +static inline xfs_rfsblock_t +xfs_rtgs_to_rfsbs( + struct xfs_mount *mp, + uint32_t nr_groups) +{ + return xfs_groups_to_rfsbs(mp, nr_groups, XG_TYPE_RTG); +} + #endif /* __LIBXFS_RTGROUP_H */