Re: [PATCH 1/5] xfs: log stripe roundoff is a property of the log
From: Dave Chinner <david@fromorbit.com>
Date: 2021-01-28 22:01:41
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:quoted
@@ -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