Revert "ceph: don't truncate dirty pages in invalidate work thread"
commit83eaea22bdfc9e1cec88f81be5b64f30f6c37e8b
authorSage Weil <sage@newdream.net>
Wed, 24 Aug 2011 21:07:01 +0000 (24 14:07 -0700)
committerSage Weil <sage@newdream.net>
Tue, 25 Oct 2011 23:10:16 +0000 (25 16:10 -0700)
treef63f415ce4241c12639ef78f4920ed6b99915760
parent80db8bea6a0f4fd047eafd8329a44d5a110f462b
Revert "ceph: don't truncate dirty pages in invalidate work thread"

This reverts commit c9af9fb68e01eb2c2165e1bc45cfeeed510c64e6.

We need to block and truncate all pages in order to reliably invalidate
them.  Otherwise, we could:

 - have some uptodate pages in the cache
 - queue an invalidate
 - write(2) locks some pages
 - invalidate_work skips them
 - write(2) only overwrites part of the page
 - page now dirty and uptodate
 -> partial leakage of invalidated data

It's not entirely clear why we started skipping locked pages in the first
place.  I just ran this through fsx and didn't see any problems.

Signed-off-by: Sage Weil <sage@newdream.net>
fs/ceph/inode.c