[PATCH] xfs: propagate errors from xfs_rtginode_load

Guanghui Yang posted 1 patch 1 week, 6 days ago
fs/xfs/xfs_rtalloc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] xfs: propagate errors from xfs_rtginode_load
Posted by Guanghui Yang 1 week, 6 days ago
xfs_rtginode_ensure() treats every xfs_rtginode_load() error other than
-ENOENT as success.  This can leave the realtime group inode unset after an
I/O, allocation, or corruption error.  Growfs then continues as though the
inode had been loaded.

Only -ENOENT means that the inode needs to be created.  Return all other
errors to the growfs caller.

Fixes: ae897e0bed0f ("xfs: support creating per-RTG files in growfs")
Cc: stable@vger.kernel.org
Signed-off-by: Guanghui Yang <3497809730@qq.com>
---
 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 7a3f97686989..84efe5a8fb11 100644
--- a/fs/xfs/xfs_rtalloc.c
+++ b/fs/xfs/xfs_rtalloc.c
@@ -737,7 +737,7 @@ xfs_rtginode_ensure(
 	xfs_trans_cancel(tp);
 
 	if (error != -ENOENT)
-		return 0;
+		return error;
 	return xfs_rtginode_create(rtg, type, true);
 }
 
-- 
2.34.1
Re: [PATCH] xfs: propagate errors from xfs_rtginode_load
Posted by Carlos Maiolino 4 days, 11 hours ago
On Sun, 12 Jul 2026 03:42:56 +0000, Guanghui Yang wrote:
> xfs_rtginode_ensure() treats every xfs_rtginode_load() error other than
> -ENOENT as success.  This can leave the realtime group inode unset after an
> I/O, allocation, or corruption error.  Growfs then continues as though the
> inode had been loaded.
> 
> Only -ENOENT means that the inode needs to be created.  Return all other
> errors to the growfs caller.
> 
> [...]

Applied to for-next, thanks!

[1/1] xfs: propagate errors from xfs_rtginode_load
      commit: b7e53968cb8882c2d276429ea8550848a4940874

Best regards,
-- 
Carlos Maiolino <cem@kernel.org>
Re: [PATCH] xfs: propagate errors from xfs_rtginode_load
Posted by Christoph Hellwig 1 week, 5 days ago
Looks good:

Reviewed-by: Christoph Hellwig <hch@lst.de>
Re: [PATCH] xfs: propagate errors from xfs_rtginode_load
Posted by Darrick J. Wong 1 week, 6 days ago
On Sun, Jul 12, 2026 at 03:42:56AM +0000, Guanghui Yang wrote:
> xfs_rtginode_ensure() treats every xfs_rtginode_load() error other than
> -ENOENT as success.  This can leave the realtime group inode unset after an
> I/O, allocation, or corruption error.  Growfs then continues as though the
> inode had been loaded.
> 
> Only -ENOENT means that the inode needs to be created.  Return all other
> errors to the growfs caller.
> 
> Fixes: ae897e0bed0f ("xfs: support creating per-RTG files in growfs")
> Cc: stable@vger.kernel.org
> Signed-off-by: Guanghui Yang <3497809730@qq.com>

Yeah, that's correct
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 7a3f97686989..84efe5a8fb11 100644
> --- a/fs/xfs/xfs_rtalloc.c
> +++ b/fs/xfs/xfs_rtalloc.c
> @@ -737,7 +737,7 @@ xfs_rtginode_ensure(
>  	xfs_trans_cancel(tp);
>  
>  	if (error != -ENOENT)
> -		return 0;
> +		return error;
>  	return xfs_rtginode_create(rtg, type, true);
>  }
>  
> -- 
> 2.34.1
>