Only when jh->b_jcount = 0 in jbd2_journal_put_journal_head, we are allowed to call __journal_remove_journal_head. Signed-off-by: Shijie Luo <luoshijie1@xxxxxxxxxx> --- fs/jbd2/journal.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c index 5e408ee24a1a..4f417a7f1ae0 100644 --- a/fs/jbd2/journal.c +++ b/fs/jbd2/journal.c @@ -2556,7 +2556,7 @@ static void __journal_remove_journal_head(struct buffer_head *bh) { struct journal_head *jh = bh2jh(bh); - J_ASSERT_JH(jh, jh->b_jcount >= 0); + J_ASSERT_JH(jh, jh->b_jcount == 0); J_ASSERT_JH(jh, jh->b_transaction == NULL); J_ASSERT_JH(jh, jh->b_next_transaction == NULL); J_ASSERT_JH(jh, jh->b_cp_transaction == NULL); -- 2.19.1