diff -drupN a/fs/jbd2/transaction.c b/fs/jbd2/transaction.c --- a/fs/jbd2/transaction.c 2018-08-06 17:23:04.000000000 +0300 +++ b/fs/jbd2/transaction.c 2022-06-12 05:28:14.000000000 +0300 @@ -1353,13 +1353,6 @@ int jbd2_journal_dirty_metadata(handle_t if (jh->b_transaction == transaction && jh->b_jlist != BJ_Metadata) { jbd_lock_bh_state(bh); - if (jh->b_transaction == transaction && - jh->b_jlist != BJ_Metadata) - pr_err("JBD2: assertion failure: h_type=%u " - "h_line_no=%u block_no=%llu jlist=%u\n", - handle->h_type, handle->h_line_no, - (unsigned long long) bh->b_blocknr, - jh->b_jlist); J_ASSERT_JH(jh, jh->b_transaction != transaction || jh->b_jlist == BJ_Metadata); jbd_unlock_bh_state(bh); @@ -1379,11 +1372,11 @@ int jbd2_journal_dirty_metadata(handle_t * of the transaction. This needs to be done * once a transaction -bzzz */ + jh->b_modified = 1; if (handle->h_buffer_credits <= 0) { ret = -ENOSPC; goto out_unlock_bh; } - jh->b_modified = 1; handle->h_buffer_credits--; }