Re: [PATCH 1/5] xfs: log stripe roundoff is a property of the log

Dave Chinner
2021-01-28T22:01:41Z

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@fromorbit.com