diff --git a/fs/buffer.c b/fs/buffer.c index 09bb80c479d8..9ece6c2086d0 100644 --- a/fs/buffer.c +++ b/fs/buffer.c @@ -1813,7 +1813,9 @@ static int __block_prepare_write(struct inode *inode, struct page *page, unmap_underlying_metadata(bh->b_bdev, bh->b_blocknr); if (PageUptodate(page)) { + clear_buffer_new(bh); set_buffer_uptodate(bh); + mark_buffer_dirty(bh); continue; } if (block_end > to || block_start < from) {