• Darrick J. Wong's avatar
    xfs: recompute growfsrtfree transaction reservation while growing rt volume · 578bd4ce
    Darrick J. Wong authored
    While playing with growfs to create a 20TB realtime section on a
    filesystem that didn't previously have an rt section, I noticed that
    growfs would occasionally shut down the log due to a transaction
    reservation overflow.
    
    xfs_calc_growrtfree_reservation uses the current size of the realtime
    summary file (m_rsumsize) to compute the transaction reservation for a
    growrtfree transaction.  The reservations are computed at mount time,
    which means that m_rsumsize is zero when growfs starts "freeing" the new
    realtime extents into the rt volume.  As a result, the transaction is
    undersized and fails.
    
    Fix this by recomputing the transaction reservations every time we
    change m_rsumsize.
    Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
    Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
    578bd4ce
xfs_rtalloc.c 37.6 KB