On Wed, Jul 11, 2018 at 05:25:34PM -0700, Darrick J. Wong wrote: > > + /* > > + * Roll the transaction once more to avoid returning to the caller > > + * with a dirty transaction. > > + */ > > + error = xfs_defer_trans_roll(tp, dop); > > Heh, it doesn't test ok; back to the drawing board... > > XFS: Assertion failed: !test_bit(XFS_LI_DIRTY, &lip->li_flags), file: fs/xfs/xfs_trans.c, line: 740 I haven't hit this yet with a full 4k+reflink and 1k+reflink run, so far things seem to do fine. > I think we only need to roll if the transaction is actually dirty, i.e. > > if ((*tp)->t_flags & XFS_TRANS_DIRTY) > error = xfs_defer_trans_roll(tp, dop); But independent of me not hitting the assert that looks reasonable. -- To unsubscribe from this list: send the line "unsubscribe linux-xfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html