1
0
Files
linux/fs
OGAWA Hirofumi 3e2a532b26 [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>
2006-10-20 10:26:44 -07:00
..
2006-10-11 11:14:23 -07:00
2006-10-10 16:15:33 -07:00
2006-10-15 11:00:58 -07:00
2006-10-03 23:28:36 +02:00
2006-10-12 17:11:33 -04:00
2006-10-11 11:14:21 -07:00
2006-10-11 11:14:21 -07:00
2006-10-11 11:14:19 -07:00
2006-10-10 16:15:34 -07:00
2006-10-11 11:14:23 -07:00
2006-10-02 09:55:27 -05:00
2006-10-11 11:14:23 -07:00
2006-10-20 10:26:41 -07:00
2006-10-20 10:26:43 -07:00
2006-10-03 23:01:26 +02:00
2006-10-11 11:14:23 -07:00
2006-10-11 11:14:23 -07:00
2006-10-05 16:18:55 -07:00
2006-10-10 16:15:34 -07:00
2006-10-04 06:51:26 -06:00
2006-10-11 11:14:25 -07:00
2006-10-11 11:14:21 -07:00
2006-10-02 07:57:15 -07:00
2006-10-10 15:37:23 -07:00
2006-10-01 00:39:33 -07:00
2006-10-01 00:39:19 -07:00
2006-10-01 00:39:29 -07:00
2006-10-01 00:39:19 -07:00
2006-10-09 14:20:38 -07:00