Index: writepages-bh-race/fs/mpage.c =================================================================== RCS file: /home/andrea/crypto/cvs/linux-2.5/fs/mpage.c,v retrieving revision 1.55 diff -u -p -r1.55 mpage.c --- writepages-bh-race/fs/mpage.c 11 Jul 2004 16:38:19 -0000 1.55 +++ writepages-bh-race/fs/mpage.c 28 Jul 2004 04:39:13 -0000 @@ -553,7 +553,12 @@ alloc_new: bh = bh->b_this_page; } while (bh != head); - if (buffer_heads_over_limit) + /* + * we cannot drop the bh if the page is not uptodate + * or a concurrent readpage would fail to serialize with the bh + * and it would read from disk before we reach the platter. + */ + if (buffer_heads_over_limit && PageUptodate(page)) try_to_free_buffers(page); }