diff --git a/fs/buffer.c b/fs/buffer.c index 09bb80c479d8b84a02d6defc7f70fef831bb6eb8..9ece6c2086d0588c4a1e9f5bf276c5ca20df443d 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) {