diff --git a/fs/jbd2/transaction.c b/fs/jbd2/transaction.c
index 35ae096bed5dca819181c1d7bfa94194fa3b0c01..5265330625484b7475d3073e2d358ec2cefaf71a 100644
--- a/fs/jbd2/transaction.c
+++ b/fs/jbd2/transaction.c
@@ -1949,6 +1949,8 @@ static int journal_unmap_buffer(journal_t *journal, struct buffer_head *bh)
 	clear_buffer_mapped(bh);
 	clear_buffer_req(bh);
 	clear_buffer_new(bh);
+	clear_buffer_delay(bh);
+	clear_buffer_unwritten(bh);
 	bh->b_bdev = NULL;
 	return may_free;
 }