Messages in this thread | | | From | Daniel Phillips <> | Subject | Re: invalidate_inode_pages in 2.5.32/3 | Date | Tue, 10 Sep 2002 00:19:41 +0200 |
| |
On Tuesday 10 September 2002 00:03, Andrew Morton wrote: > Daniel Phillips wrote: > > > > > I'm very unkeen about using the inaccurate invalidate_inode_pages > > > for anything which matters, really. And the consistency of pagecache > > > data matters. > > > > > > NFS should be using something stronger. And that's basically > > > vmtruncate() without the i_size manipulation. > > > > Yes, that looks good. Semantics are basically "and don't come back > > until every damm page is gone" which is enforced by the requirement > > that we hold the mapping->page_lock though one entire scan of the > > truncated region. (Yes, I remember sweating this one out a year > > or two ago so it doesn't eat 100% CPU on regular occasions.) > > > > So, specifically, we want: > > > > void invalidate_inode_pages(struct inode *inode) > > { > > truncate_inode_pages(mapping, 0); > > } > > > > Is it any harder than that? > > Pretty much - need to leave i_size where it was.
This doesn't touch i_size.
> But there are > apparently reasons why NFS cannot sleepingly lock pages in this particular > context.
If only we knew what those were. It's hard to keep the word 'bogosity' from popping into my head.
-- Daniel - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |