Re: invalidate_inode_pages in 2.5.32/3

Andrew Morton
2002-09-23T18:53:54Z

Trond Myklebust wrote:
>
> >>>>> " " == Andrew Morton <akpm@digeo.com> writes:
>
> > Look, idunnoigiveup. Like scsi and USB, NFS is a black hole
> > where akpms fear to tread. I think I'll sulk until someone
> > explains why this work has to be performed in the context of a
> > process which cannot do it.
>
> I'd be happy to move that work out of the RPC callbacks if you could
> point out which other processes actually can do it.

Well it has to be a new thread, or user processes.

Would it be possible to mark the inode as "needs invalidation",
and make user processes check that flag once they have i_sem?

> The main problem is that the VFS/MM has no way of relabelling pages as
> being invalid or no longer up to date: I once proposed simply clearing
> PG_uptodate on those pages which cannot be cleared by
> invalidate_inode_pages(), but this was not to Linus' taste.

Yes, clearing PageUptodate without holding the page lock is
pretty scary.

Do we really need to invalidate individual pages, or is it real-life
acceptable to invalidate the whole mapping?

Doing an NFS-special invalidate function is not a problem, btw - my
current invalidate_inode_pages() is just 25 lines. It's merely a
matter of working out what it should do ;)