summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorOGAWA Hirofumi <hirofumi@mail.parknet.co.jp>2006-10-20 08:29:11 +0200
committerLinus Torvalds <torvalds@g5.osdl.org>2006-10-20 19:26:44 +0200
commit3e2a532b26b491706bd8b5c7cfc8d767b43b8f36 (patch)
tree641db5da4c1adbeee04ce6594746cec51f581ff0 /kernel
parent[PATCH] mm: more commenting on lock ordering (diff)
downloadlinux-3e2a532b26b491706bd8b5c7cfc8d767b43b8f36.tar.xz
linux-3e2a532b26b491706bd8b5c7cfc8d767b43b8f36.zip
[PATCH] ext3/4: fix J_ASSERT(transaction->t_updates > 0) in journal_stop()
A disk generated some I/O error, after it, I hitted J_ASSERT(transaction->t_updates > 0) in journal_stop(). It seems to happened on ext3_truncate() path from stack trace. Then, maybe the following case may trigger J_ASSERT(transaction->t_updates > 0). ext3_truncate() -> ext3_free_branches() -> ext3_journal_test_restart() -> ext3_journal_restart() -> journal_restart() transaction->t_updates--; /* another process aborted journal */ -> start_this_handle() returns -EROFS without transaction->t_updates++; -> ext3_journal_stop() -> journal_stop() J_ASSERT(transaction->t_updates > 0) If journal was aborted in middle of journal_restart(), ext3_truncate() may trigger J_ASSERT(). Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp> Cc: <linux-ext4@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'kernel')
0 files changed, 0 insertions, 0 deletions