From: Monakhov Dmitriy A coupld of flush_dcache_page()s are missing on the I/O-error paths. Cc: "David S. Miller" Signed-off-by: Andrew Morton --- fs/buffer.c | 2 ++ 1 file changed, 2 insertions(+) diff -puN fs/buffer.c~d-cache-aliasing-issue-in-__block_prepare_write fs/buffer.c --- a/fs/buffer.c~d-cache-aliasing-issue-in-__block_prepare_write +++ a/fs/buffer.c @@ -1851,6 +1851,7 @@ static int __block_prepare_write(struct clear_buffer_new(bh); kaddr = kmap_atomic(page, KM_USER0); memset(kaddr+block_start, 0, bh->b_size); + flush_dcache_page(page); kunmap_atomic(kaddr, KM_USER0); set_buffer_uptodate(bh); mark_buffer_dirty(bh); @@ -2357,6 +2358,7 @@ failed: */ kaddr = kmap_atomic(page, KM_USER0); memset(kaddr, 0, PAGE_CACHE_SIZE); + flush_dcache_page(page); kunmap_atomic(kaddr, KM_USER0); SetPageUptodate(page); set_page_dirty(page); _