summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorDarrick J. Wong <djwong@kernel.org>2025-06-11 14:01:07 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-06-27 11:07:18 +0100
commit24d503729f82b0383e5aa65d8acc1c9373c0975c (patch)
tree107ff3a260b032a606d58a3236e408ba9d36a29b /fs
parent15da730a85681f209d5b406b2adcb17360a0b65e (diff)
downloadlinux-24d503729f82b0383e5aa65d8acc1c9373c0975c.tar.gz
linux-24d503729f82b0383e5aa65d8acc1c9373c0975c.tar.bz2
linux-24d503729f82b0383e5aa65d8acc1c9373c0975c.zip
xfs: fix getfsmap reporting past the last rt extent
[ Upstream commit d898137d789cac9ebe5eed9957e4cf25122ca524 ] The realtime section ends at the last rt extent. If the user configures the rt geometry with an extent size that is not an integer factor of the number of rt blocks, it's possible for there to be rt blocks past the end of the last rt extent. These tail blocks cannot ever be allocated and will cause corruption reports if the last extent coincides with the end of an rt bitmap block, so do not report consider them for the GETFSMAP output. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Leah Rumancik <leah.rumancik@gmail.com> Acked-by: "Darrick J. Wong" <djwong@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'fs')
-rw-r--r--fs/xfs/xfs_fsmap.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/xfs/xfs_fsmap.c b/fs/xfs/xfs_fsmap.c
index 5039d330ef98..7b72992c14d9 100644
--- a/fs/xfs/xfs_fsmap.c
+++ b/fs/xfs/xfs_fsmap.c
@@ -529,7 +529,7 @@ __xfs_getfsmap_rtdev(
uint64_t eofs;
int error = 0;
- eofs = XFS_FSB_TO_BB(mp, mp->m_sb.sb_rblocks);
+ eofs = XFS_FSB_TO_BB(mp, mp->m_sb.sb_rextents * mp->m_sb.sb_rextsize);
if (keys[0].fmr_physical >= eofs)
return 0;
start_rtb = XFS_BB_TO_FSBT(mp,