On Mon, Mar 17, 2025 at 06:44:52AM +0100, Christoph Hellwig wrote: > The newly added check for the internal RT device needs to unlock > m_growlock just like all ther other error cases. > > Fixes: bdc03eb5f98f ("xfs: allow internal RT devices for zoned mode") > Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> > Signed-off-by: Christoph Hellwig <hch@xxxxxx> Reviewed-by: Carlos Maiolino <cmaiolino@xxxxxxxxxx> > --- > fs/xfs/xfs_fsops.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/fs/xfs/xfs_fsops.c b/fs/xfs/xfs_fsops.c > index ee2cefbd5df8..d7658b7dcdbd 100644 > --- a/fs/xfs/xfs_fsops.c > +++ b/fs/xfs/xfs_fsops.c > @@ -301,7 +301,7 @@ xfs_growfs_data( > struct xfs_mount *mp, > struct xfs_growfs_data *in) > { > - int error = 0; > + int error; > > if (!capable(CAP_SYS_ADMIN)) > return -EPERM; > @@ -309,8 +309,10 @@ xfs_growfs_data( > return -EWOULDBLOCK; > > /* we can't grow the data section when an internal RT section exists */ > - if (in->newblocks != mp->m_sb.sb_dblocks && mp->m_sb.sb_rtstart) > - return -EINVAL; > + if (in->newblocks != mp->m_sb.sb_dblocks && mp->m_sb.sb_rtstart) { > + error = -EINVAL; > + goto out_error; > + } > > /* update imaxpct separately to the physical grow of the filesystem */ > if (in->imaxpct != mp->m_sb.sb_imax_pct) { > -- > 2.45.2 >