/* Drop a reference on the passed journal_head. If it fell to zero then try to release the journal_head from the buffer_head.  */
void journal_put_journal_head(struct journal_head *jh)
/* Drop a reference on the passed journal_head. If it fell to zero then try to release the journal_head from the buffer_head.  */
void journal_put_journal_head(struct journal_head *jh)
{
	struct buffer_head *bh = jh2bh(jh);
	jbd_lock_bh_journal_head(bh);
	J_ASSERT_JH(jh, jh->b_jcount > 0);
	--jh->b_jcount;
	if (!jh->b_jcount && !jh->b_transaction) {
		__journal_remove_journal_head(bh);
		__brelse(bh);
	}
	jbd_unlock_bh_journal_head(bh);
}