public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] xfs: Fix xfs_grow_last_rtg()
@ 2026-01-12  8:24 Nirjhar Roy (IBM)
  2026-01-12 21:51 ` Darrick J. Wong
  2026-01-13 13:10 ` Carlos Maiolino
  0 siblings, 2 replies; 3+ messages in thread
From: Nirjhar Roy (IBM) @ 2026-01-12  8:24 UTC (permalink / raw)
  To: linux-xfs; +Cc: ritesh.list, ojaswin, djwong, hch, cem, nirjhar.roy.lists

The last rtg should be able to grow when the size of the last is less
than (and not equal to) sb_rgextents. xfs_growfs with realtime groups
fails without this patch. The reason is that, xfs_growfs_rtg() tries
to grow the last rt group even when the last rt group is at its
maximal size i.e, sb_rgextents. It fails with the following messages:

XFS (loop0): Internal error block >= mp->m_rsumblocks at line 253 of file fs/xfs/libxfs/xfs_rtbitmap.c.  Caller xfs_rtsummary_read_buf+0x20/0x80
XFS (loop0): Corruption detected. Unmount and run xfs_repair
XFS (loop0): Internal error xfs_trans_cancel at line 976 of file fs/xfs/xfs_trans.c.  Caller xfs_growfs_rt_bmblock+0x402/0x450
XFS (loop0): Corruption of in-memory data (0x8) detected at xfs_trans_cancel+0x10a/0x1f0 (fs/xfs/xfs_trans.c:977).  Shutting down filesystem.
XFS (loop0): Please unmount the filesystem and rectify the problem(s)

Signed-off-by: Nirjhar Roy (IBM) <nirjhar.roy.lists@gmail.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
---
 fs/xfs/xfs_rtalloc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/xfs/xfs_rtalloc.c b/fs/xfs/xfs_rtalloc.c
index 6907e871fa15..2666923a9b40 100644
--- a/fs/xfs/xfs_rtalloc.c
+++ b/fs/xfs/xfs_rtalloc.c
@@ -1324,7 +1324,7 @@ xfs_grow_last_rtg(
 		return true;
 	if (mp->m_sb.sb_rgcount == 0)
 		return false;
-	return xfs_rtgroup_extents(mp, mp->m_sb.sb_rgcount - 1) <=
+	return xfs_rtgroup_extents(mp, mp->m_sb.sb_rgcount - 1) <
 			mp->m_sb.sb_rgextents;
 }
 
-- 
2.43.5


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH v2] xfs: Fix xfs_grow_last_rtg()
  2026-01-12  8:24 [PATCH v2] xfs: Fix xfs_grow_last_rtg() Nirjhar Roy (IBM)
@ 2026-01-12 21:51 ` Darrick J. Wong
  2026-01-13 13:10 ` Carlos Maiolino
  1 sibling, 0 replies; 3+ messages in thread
From: Darrick J. Wong @ 2026-01-12 21:51 UTC (permalink / raw)
  To: Nirjhar Roy (IBM); +Cc: linux-xfs, ritesh.list, ojaswin, hch, cem

On Mon, Jan 12, 2026 at 01:54:02PM +0530, Nirjhar Roy (IBM) wrote:
> The last rtg should be able to grow when the size of the last is less
> than (and not equal to) sb_rgextents. xfs_growfs with realtime groups
> fails without this patch. The reason is that, xfs_growfs_rtg() tries
> to grow the last rt group even when the last rt group is at its
> maximal size i.e, sb_rgextents. It fails with the following messages:
> 
> XFS (loop0): Internal error block >= mp->m_rsumblocks at line 253 of file fs/xfs/libxfs/xfs_rtbitmap.c.  Caller xfs_rtsummary_read_buf+0x20/0x80
> XFS (loop0): Corruption detected. Unmount and run xfs_repair
> XFS (loop0): Internal error xfs_trans_cancel at line 976 of file fs/xfs/xfs_trans.c.  Caller xfs_growfs_rt_bmblock+0x402/0x450
> XFS (loop0): Corruption of in-memory data (0x8) detected at xfs_trans_cancel+0x10a/0x1f0 (fs/xfs/xfs_trans.c:977).  Shutting down filesystem.
> XFS (loop0): Please unmount the filesystem and rectify the problem(s)
> 
> Signed-off-by: Nirjhar Roy (IBM) <nirjhar.roy.lists@gmail.com>
> Reviewed-by: Christoph Hellwig <hch@lst.de>

Sounds reasonable to me,
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>

--D

> ---
>  fs/xfs/xfs_rtalloc.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/fs/xfs/xfs_rtalloc.c b/fs/xfs/xfs_rtalloc.c
> index 6907e871fa15..2666923a9b40 100644
> --- a/fs/xfs/xfs_rtalloc.c
> +++ b/fs/xfs/xfs_rtalloc.c
> @@ -1324,7 +1324,7 @@ xfs_grow_last_rtg(
>  		return true;
>  	if (mp->m_sb.sb_rgcount == 0)
>  		return false;
> -	return xfs_rtgroup_extents(mp, mp->m_sb.sb_rgcount - 1) <=
> +	return xfs_rtgroup_extents(mp, mp->m_sb.sb_rgcount - 1) <
>  			mp->m_sb.sb_rgextents;
>  }
>  
> -- 
> 2.43.5
> 
> 

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v2] xfs: Fix xfs_grow_last_rtg()
  2026-01-12  8:24 [PATCH v2] xfs: Fix xfs_grow_last_rtg() Nirjhar Roy (IBM)
  2026-01-12 21:51 ` Darrick J. Wong
@ 2026-01-13 13:10 ` Carlos Maiolino
  1 sibling, 0 replies; 3+ messages in thread
From: Carlos Maiolino @ 2026-01-13 13:10 UTC (permalink / raw)
  To: linux-xfs, Nirjhar Roy (IBM); +Cc: ritesh.list, ojaswin, djwong, hch

On Mon, 12 Jan 2026 13:54:02 +0530, Nirjhar Roy (IBM) wrote:
> The last rtg should be able to grow when the size of the last is less
> than (and not equal to) sb_rgextents. xfs_growfs with realtime groups
> fails without this patch. The reason is that, xfs_growfs_rtg() tries
> to grow the last rt group even when the last rt group is at its
> maximal size i.e, sb_rgextents. It fails with the following messages:
> 
> XFS (loop0): Internal error block >= mp->m_rsumblocks at line 253 of file fs/xfs/libxfs/xfs_rtbitmap.c.  Caller xfs_rtsummary_read_buf+0x20/0x80
> XFS (loop0): Corruption detected. Unmount and run xfs_repair
> XFS (loop0): Internal error xfs_trans_cancel at line 976 of file fs/xfs/xfs_trans.c.  Caller xfs_growfs_rt_bmblock+0x402/0x450
> XFS (loop0): Corruption of in-memory data (0x8) detected at xfs_trans_cancel+0x10a/0x1f0 (fs/xfs/xfs_trans.c:977).  Shutting down filesystem.
> XFS (loop0): Please unmount the filesystem and rectify the problem(s)
> 
> [...]

Applied to for-next, thanks!

[1/1] xfs: Fix xfs_grow_last_rtg()
      commit: a65fd81207669367504b6da7758e130ee23a7dfe

Best regards,
-- 
Carlos Maiolino <cem@kernel.org>


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-01-13 13:10 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-12  8:24 [PATCH v2] xfs: Fix xfs_grow_last_rtg() Nirjhar Roy (IBM)
2026-01-12 21:51 ` Darrick J. Wong
2026-01-13 13:10 ` Carlos Maiolino

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox