/* Two internal functions, which provide abort to the jbd layer itself are here. Quick version for internal journal use (doesn't lock the journal). Aborts hard  */
void __jbd2_journal_abort_hard(journal_t *journal)
/* Two internal functions, which provide abort to the jbd layer itself are here. Quick version for internal journal use (doesn't lock the journal). Aborts hard  */
void __jbd2_journal_abort_hard(journal_t *journal)
{
	transaction_t *transaction;
	if (journal->j_flags & JBD2_ABORT)
		return;
	printk(KERN_ERR "Aborting journal on device %s.\n",
	       journal->j_devname);
	spin_lock(&journal->j_state_lock);
	journal->j_flags |= JBD2_ABORT;
	transaction = journal->j_running_transaction;
	if (transaction)
		__jbd2_log_start_commit(journal, transaction->t_tid);
	spin_unlock(&journal->j_state_lock);
}