On Thu, Aug 28, 2014 at 09:49:06PM +1000, Dave Chinner wrote: > From: Chris Mason <clm@xxxxxx> > > xfs is using truncate_pagecache_range to invalidate the page cache > during DIO reads. This is different from the other filesystems who > only invalidate pages during DIO writes. > > truncate_pagecache_range is meant to be used when we are freeing the > underlying data structs from disk, so it will zero any partial > ranges in the page. This means a DIO read can zero out part of the > page cache page, and it is possible the page will stay in cache. > > buffered reads will find an up to date page with zeros instead of > the data actually on disk. > > This patch fixes things by using invalidate_inode_pages2_range > instead. It preserves the page cache invalidation, but won't zero > any pages. > > [dchinner: catch error and warn if it fails. Comment.] Looks good, Reviewed-by: Christoph Hellwig <hch@xxxxxx> _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs