Thread (27 messages) 27 messages, 7 authors, 2021-02-17

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help