]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
xfs: use the recalculated transaction reservation in xfs_growfs_rt_bmblock
authorChristoph Hellwig <hch@lst.de>
Fri, 30 Aug 2024 22:37:00 +0000 (15:37 -0700)
committerDarrick J. Wong <djwong@kernel.org>
Sun, 1 Sep 2024 15:58:19 +0000 (08:58 -0700)
After going great length to calculate the transaction reservation for
the new geometry, we should also use it to allocate the transaction it
was calculated for.

Fixes: 578bd4ce7100 ("xfs: recompute growfsrtfree transaction reservation while growing rt volume")
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
fs/xfs/xfs_rtalloc.c

index d290749b0304d3d8fd0f050f715ab319af2b1e39..a9f08d96f1fe8c88fe0074997392f4e57f51199e 100644 (file)
@@ -730,10 +730,12 @@ xfs_growfs_rt_bmblock(
                xfs_rtsummary_blockcount(mp, nmp->m_rsumlevels,
                        nmp->m_sb.sb_rbmblocks));
 
-       /* recompute growfsrt reservation from new rsumsize */
+       /*
+        * Recompute the growfsrt reservation from the new rsumsize, so that the
+        * transaction below use the new, potentially larger value.
+        * */
        xfs_trans_resv_calc(nmp, &nmp->m_resv);
-
-       error = xfs_trans_alloc(mp, &M_RES(mp)->tr_growrtfree, 0, 0, 0,
+       error = xfs_trans_alloc(mp, &M_RES(nmp)->tr_growrtfree, 0, 0, 0,
                        &args.tp);
        if (error)
                goto out_free;