[PATCH 31/36] xfs: add a xfs_rtbno_is_group_start helper

Darrick J. Wong
2024-10-11T01:09:45Z

From: Christoph Hellwig <hch@lst.de>

Make the boundary condition flag more clear and implement it by
a single masking operation.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
---
fs/xfs/libxfs/xfs_rtgroup.h | 9 +++++++++
fs/xfs/xfs_iomap.c | 3 +--
2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/fs/xfs/libxfs/xfs_rtgroup.h b/fs/xfs/libxfs/xfs_rtgroup.h
index a0dfe3eae3da6e..f3ee5b8177cc72 100644
--- a/fs/xfs/libxfs/xfs_rtgroup.h
+++ b/fs/xfs/libxfs/xfs_rtgroup.h
@@ -141,6 +141,15 @@ xfs_rtb_to_rgbno(
return xfs_fsb_to_gbno(mp, rtbno, XG_TYPE_RTG);
}

+/* Is rtbno the start of a RT group? */
+static inline bool
+xfs_rtbno_is_group_start(
+ struct xfs_mount *mp,
+ xfs_rtblock_t rtbno)
+{
+ return (rtbno & mp->m_groups[XG_TYPE_RTG].blkmask) == 0;
+}
+
static inline xfs_daddr_t
xfs_rtb_to_daddr(
struct xfs_mount *mp,
diff --git a/fs/xfs/xfs_iomap.c b/fs/xfs/xfs_iomap.c
index ed35191c174f65..fc952fe6269385 100644
--- a/fs/xfs/xfs_iomap.c
+++ b/fs/xfs/xfs_iomap.c
@@ -133,8 +133,7 @@ xfs_bmbt_to_iomap(
* single RTG.
*/
if (XFS_IS_REALTIME_INODE(ip) && xfs_has_rtgroups(mp) &&
- xfs_rtb_to_rtx(mp, imap->br_startblock) == 0 &&
- xfs_rtb_to_rtxoff(mp, imap->br_startblock) == 0)
+ xfs_rtbno_is_group_start(mp, imap->br_startblock))
iomap->flags |= IOMAP_F_BOUNDARY;
}
iomap->offset = XFS_FSB_TO_B(mp, imap->br_startoff);