We're getting asserion failures in commit in data=journal mode. journal_unmap_buffer() has unexpectedly donated this buffer to the committing transaction, and the commit-time assertion doesn't expect that to happen. it doesn't happen in 2.4 because both paths are under lock_journal(). Simply remove the assertion: the commit code will uncheckpoint the buffer and then recheckpoint it if needed. fs/jbd/commit.c | 1 - 1 files changed, 1 deletion(-) diff -puN fs/jbd/commit.c~ext3-commit-assertion-fix fs/jbd/commit.c --- 25/fs/jbd/commit.c~ext3-commit-assertion-fix 2003-07-27 22:27:44.000000000 -0700 +++ 25-akpm/fs/jbd/commit.c 2003-07-27 22:27:48.000000000 -0700 @@ -699,7 +699,6 @@ skip_commit: /* The journal should be un cp_transaction = jh->b_cp_transaction; if (cp_transaction) { JBUFFER_TRACE(jh, "remove from old cp transaction"); - J_ASSERT_JH(jh, commit_transaction != cp_transaction); __journal_remove_checkpoint(jh); } _