From: Stephen Tweedie 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. fs/jbd/transaction.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) diff -puN fs/jbd/transaction.c~jbd-assert-io-failure-fix fs/jbd/transaction.c --- 25/fs/jbd/transaction.c~jbd-assert-io-failure-fix 2003-03-27 01:15:35.000000000 -0800 +++ 25-akpm/fs/jbd/transaction.c 2003-03-27 01:15:35.000000000 -0800 @@ -666,7 +666,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); _