On Wed, Feb 24, 2021 at 05:34:50PM +1100, Dave Chinner wrote: > /* Don't account for regions with embedded ophdrs */ > if (optype && headers > 0) { > + headers--; > if (optype & XLOG_START_TRANS) { > + ASSERT(headers >= 1); > + headers--; A more detailed comment on the magic for XLOG_START_TRANS might be useful here. > @@ -2518,14 +2516,13 @@ xlog_write( > /* > * The XLOG_START_TRANS has embedded ophdrs for the > * start record and transaction header. They will always > - * be the first two regions in the lv chain. > + * be the first two regions in the lv chain. Commit and > + * unmount records also have embedded ophdrs. > */ Maybe update this comment to cover the other special cases as well?