On Thu, Jan 28, 2021 at 01:25:11PM -0800, Darrick J. Wong wrote: > On Thu, Jan 28, 2021 at 03:41:50PM +1100, Dave Chinner wrote: > > @@ -3404,12 +3395,11 @@ xfs_log_ticket_get( > > * Figure out the total log space unit (in bytes) that would be > > * required for a log ticket. > > */ > > -int > > -xfs_log_calc_unit_res( > > - struct xfs_mount *mp, > > +static int > > +xlog_calc_unit_res( > > + struct xlog *log, > > int unit_bytes) > > { > > - struct xlog *log = mp->m_log; > > int iclog_space; > > uint num_headers; > > > > @@ -3485,18 +3475,20 @@ xfs_log_calc_unit_res( > > /* for commit-rec LR header - note: padding will subsume the ophdr */ > > unit_bytes += log->l_iclog_hsize; > > > > - /* for roundoff padding for transaction data and one for commit record */ > > - if (xfs_sb_version_haslogv2(&mp->m_sb) && mp->m_sb.sb_logsunit > 1) { > > - /* log su roundoff */ > > - unit_bytes += 2 * mp->m_sb.sb_logsunit; > > - } else { > > - /* BB roundoff */ > > - unit_bytes += 2 * BBSIZE; > > - } > > + /* roundoff padding for transaction data and one for commit record */ > > + unit_bytes += log->l_iclog_roundoff; > > I don't understand why the "2 *" disappears here. It's not a part of > the roundoff computation when we allocate the log, so AFAICT it's not > just buried elsewhere? > > Was the old code saying that it added the roundoff factor twice because > we needed to do so once for the transaction data and the second time for > the commit record? Just a bug. I originally copying this entire chunk into the log init code (hence the comment), then I found another place it could be used but it didn't need the "* 2" value. SO i changed the init site, forgetting to put it back here. Will fix and resend. -Dave. -- Dave Chinner david@xxxxxxxxxxxxx