J_ASSERT_JH
J_ASSERT_JH(jh, buffer_dirty(jh2bh(jh)) || buffer_jbddirty(jh2bh(jh)));
J_ASSERT_JH(jh, jh->b_cp_transaction == NULL);
J_ASSERT_JH(jh, jh->b_transaction == commit_transaction);
J_ASSERT_JH(jh, jh->b_transaction == NULL);
J_ASSERT_JH(jh, jh->b_next_transaction == NULL);
J_ASSERT_JH(jh, jh->b_cp_transaction == NULL);
J_ASSERT_JH(jh, jh->b_jlist == BJ_None);
J_ASSERT_JH(jh, jh->b_jcount > 0);
J_ASSERT_JH(jh, record == NULL);
J_ASSERT_JH(jh, !jh->b_next_transaction);
J_ASSERT_JH(jh, jh->b_next_transaction == NULL);
J_ASSERT_JH(jh, jh->b_next_transaction == NULL);
J_ASSERT_JH(jh, jh->b_transaction == journal->j_committing_transaction);
J_ASSERT_JH(jh, buffer_locked(jh2bh(jh)));
J_ASSERT_JH(jh, jh->b_transaction == transaction ||
J_ASSERT_JH(jh, jh->b_transaction != transaction ||
J_ASSERT_JH(jh, jh->b_frozen_data == NULL);
J_ASSERT_JH(jh, !jh->b_frozen_data);
J_ASSERT_JH(jh, (jh->b_transaction ==
J_ASSERT_JH(jh, jh->b_jlist < BJ_Types);
J_ASSERT_JH(jh, transaction != NULL);
J_ASSERT_JH(jh, transaction->t_nr_buffers >= 0);
J_ASSERT_JH(jh, jh->b_transaction != NULL);
J_ASSERT_JH(jh, jh->b_next_transaction == NULL);
J_ASSERT_JH(jh, transaction == journal->j_running_transaction);
J_ASSERT_JH(jh, jh->b_jlist < BJ_Types);
J_ASSERT_JH(jh, jh->b_transaction == transaction ||
J_ASSERT_JH(jh, !jh->b_committed_data);
J_ASSERT_JH(jh, !jh->b_frozen_data);
J_ASSERT_JH(jh, jh->b_transaction != NULL);
J_ASSERT_JH(jh, jh->b_transaction->t_state == T_RUNNING);
#define J_EXPECT_JH(jh, expr, why...) J_ASSERT_JH(jh, expr)