From: Christoph Hellwig Date: Mon, 17 Mar 2025 05:44:52 +0000 (+0100) Subject: xfs: fix a missing unlock in xfs_growfs_data X-Git-Tag: v6.15-rc1~149^2~7^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=beba9487138151c17dec17105364b35935f21562;p=thirdparty%2Fkernel%2Flinux.git xfs: fix a missing unlock in xfs_growfs_data 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 Signed-off-by: Christoph Hellwig Reviewed-by: Carlos Maiolino Signed-off-by: Carlos Maiolino --- diff --git a/fs/xfs/xfs_fsops.c b/fs/xfs/xfs_fsops.c index ee2cefbd5df8a..d7658b7dcdbd0 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) {