| To: | Dave Chinner <david@xxxxxxxxxxxxx> |
|---|---|
| Subject: | Re: [PATCH 2/7] xfs: don't zero partial page cache pages during O_DIRECT writes |
| From: | Christoph Hellwig <hch@xxxxxxxxxxxxx> |
| Date: | Thu, 28 Aug 2014 17:39:34 -0700 |
| Cc: | xfs@xxxxxxxxxxx |
| Delivered-to: | xfs@xxxxxxxxxxx |
| In-reply-to: | <1409226551-16570-3-git-send-email-david@xxxxxxxxxxxxx> |
| References: | <1409226551-16570-1-git-send-email-david@xxxxxxxxxxxxx> <1409226551-16570-3-git-send-email-david@xxxxxxxxxxxxx> |
| User-agent: | Mutt/1.5.23 (2014-03-12) |
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> |
| Previous by Date: | Re: [PATCH 1/7] xfs: don't dirty buffers beyond EOF, Christoph Hellwig |
|---|---|
| Next by Date: | Re: [PATCH 3/7] xfs: don't zero partial page cache pages during O_DIRECT writes, Christoph Hellwig |
| Previous by Thread: | [PATCH 2/7] xfs: don't zero partial page cache pages during O_DIRECT writes, Dave Chinner |
| Next by Thread: | [PATCH 7/7] xfs: trim eofblocks before collapse range, Dave Chinner |
| Indexes: | [Date] [Thread] [Top] [All Lists] |