From: Russell King It appears the loop driver has had one flush_dcache_page() call added for the case where it writes to the backing device page cache pages. However, it seems to be missing the call where it writes to its own page cache pages. Signed-off-by: Andrew Morton --- 25-akpm/drivers/block/loop.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletion(-) diff -puN drivers/block/loop.c~fix-loop-device-cache-handling drivers/block/loop.c --- 25/drivers/block/loop.c~fix-loop-device-cache-handling Tue Jun 1 16:49:55 2004 +++ 25-akpm/drivers/block/loop.c Tue Jun 1 16:49:55 2004 @@ -308,7 +308,9 @@ lo_read_actor(read_descriptor_t *desc, s page->index); desc->error = -EINVAL; } - + + flush_dcache_page(p->page); + desc->count = count - size; desc->written += size; p->offset += size; _