Try to trap some more state when an assertion which cannot happen happens.


 fs/jbd/transaction.c |   10 ++++++++++
 kernel/ksyms.c       |    3 ++-
 2 files changed, 12 insertions(+), 1 deletion(-)

diff -puN fs/jbd/transaction.c~jbd-610-journal_dirty_metadata-diags fs/jbd/transaction.c
--- 25/fs/jbd/transaction.c~jbd-610-journal_dirty_metadata-diags	2003-06-09 18:17:06.000000000 -0700
+++ 25-akpm/fs/jbd/transaction.c	2003-06-09 18:17:06.000000000 -0700
@@ -1111,6 +1111,16 @@ int journal_dirty_metadata(handle_t *han
 	if (jh->b_transaction == handle->h_transaction &&
 					jh->b_jlist == BJ_Metadata) {
 		JBUFFER_TRACE(jh, "fastpath");
+		console_verbose();
+		if (jh->b_transaction != journal->j_running_transaction) {
+			printk("jh->b_transaction=%p\n", jh->b_transaction);
+			printk("journal->j_running_transaction=%p\n",
+				journal->j_running_transaction);
+			printk("handle->h_transaction=%p\n",
+				handle->h_transaction);
+			printk("journal->j_committing_transaction=%p\n",
+				journal->j_committing_transaction);
+		}
 		J_ASSERT_JH(jh, jh->b_transaction ==
 					journal->j_running_transaction);
 		goto out_unlock_bh;
diff -puN kernel/ksyms.c~jbd-610-journal_dirty_metadata-diags kernel/ksyms.c
--- 25/kernel/ksyms.c~jbd-610-journal_dirty_metadata-diags	2003-06-09 18:17:06.000000000 -0700
+++ 25-akpm/kernel/ksyms.c	2003-06-09 18:17:06.000000000 -0700
@@ -614,5 +614,6 @@ EXPORT_SYMBOL(_metered_write_unlock);
 /* debug */
 EXPORT_SYMBOL(dump_stack);
 EXPORT_SYMBOL(ptrace_notify);
+EXPORT_SYMBOL(console_printk);
 
-EXPORT_SYMBOL(current_kernel_time); 
+EXPORT_SYMBOL(current_kernel_time);

_