Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1625397 > unrolled thread
| Started by | Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> |
|---|---|
| First post | 2017-04-18 17:30 +0200 |
| Last post | 2017-04-18 17:30 +0200 |
| Articles | 1 — 1 participant |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: [PATCH 0/4] Properly invalidate data in the cleancache. Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> - 2017-04-18 17:30 +0200
| From | Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> |
|---|---|
| Date | 2017-04-18 17:30 +0200 |
| Subject | Re: [PATCH 0/4] Properly invalidate data in the cleancache. |
| Message-ID | <txDeN-7Mn-5@gated-at.bofh.it> |
On Fri, Apr 14, 2017 at 05:07:49PM +0300, Andrey Ryabinin wrote: > We've noticed that after direct IO write, buffered read sometimes gets > stale data which is coming from the cleancache. That is not good. > The reason for this is that some direct write hooks call call invalidate_inode_pages2[_range]() > conditionally iff mapping->nrpages is not zero, so we may not invalidate > data in the cleancache. > > Another odd thing is that we check only for ->nrpages and don't check for ->nrexceptional, Yikes. > but invalidate_inode_pages2[_range] also invalidates exceptional entries as well. > So we invalidate exceptional entries only if ->nrpages != 0? This doesn't feel right. > > - Patch 1 fixes direct IO writes by removing ->nrpages check. > - Patch 2 fixes similar case in invalidate_bdev(). > Note: I only fixed conditional cleancache_invalidate_inode() here. > Do we also need to add ->nrexceptional check in into invalidate_bdev()? > > - Patches 3-4: some optimizations. Acked-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> Thanks! > > Andrey Ryabinin (4): > fs: fix data invalidation in the cleancache during direct IO > fs/block_dev: always invalidate cleancache in invalidate_bdev() > mm/truncate: bail out early from invalidate_inode_pages2_range() if > mapping is empty > mm/truncate: avoid pointless cleancache_invalidate_inode() calls. > > fs/9p/vfs_file.c | 2 +- > fs/block_dev.c | 11 +++++------ > fs/cifs/inode.c | 2 +- > fs/dax.c | 2 +- > fs/iomap.c | 16 +++++++--------- > fs/nfs/direct.c | 6 ++---- > fs/nfs/inode.c | 8 +++++--- > mm/filemap.c | 26 +++++++++++--------------- > mm/truncate.c | 13 +++++++++---- > 9 files changed, 42 insertions(+), 44 deletions(-) > > -- > 2.10.2 >
Back to top | Article view | linux.kernel
csiph-web