The buffer_uptodate flag gets cleared on IO failure, and this can panic
jbd when it tries to write such a buffer. Relax the panic to be just a
warning.
--- linux-2.4-ext3push/fs/jbd/transaction.c.=K0005=.orig 2003-03-25 10:59:15.000000000 +0000
+++ linux-2.4-ext3push/fs/jbd/transaction.c 2003-03-25 10:59:15.000000000 +0000
@@ -739,7 +739,8 @@ done_locked:
int offset;
char *source;
- J_ASSERT_JH(jh, buffer_uptodate(jh2bh(jh)));
+ J_EXPECT_JH(jh, buffer_uptodate(jh2bh(jh)),
+ "Possible IO failure.\n");
page = jh2bh(jh)->b_page;
offset = ((unsigned long) jh2bh(jh)->b_data) & ~PAGE_MASK;
source = kmap(page);