Skip to content

Commit

Permalink
[PATCH] D-cache aliasing issue in __block_prepare_write
Browse files Browse the repository at this point in the history
A couple of flush_dcache_page()s are missing on the I/O-error paths.

Cc: "David S. Miller" <davem@davemloft.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
  • Loading branch information
Monakhov Dmitriy authored and Linus Torvalds committed Oct 11, 2006
1 parent 97e860d commit 8c58165
Showing 1 changed file with 2 additions and 0 deletions.
2 changes: 2 additions & 0 deletions fs/buffer.c
Original file line number Diff line number Diff line change
Expand Up @@ -1854,6 +1854,7 @@ static int __block_prepare_write(struct inode *inode, struct page *page,
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);
Expand Down Expand Up @@ -2360,6 +2361,7 @@ int nobh_prepare_write(struct page *page, unsigned from, unsigned to,
*/
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);
Expand Down

0 comments on commit 8c58165

Please sign in to comment.