Re: invalidate_inode_pages in 2.5.32/3

Andrew Morton
2002-09-12T18:16:59Z

Trond Myklebust wrote:
>
> >>>>> " " == Chuck Lever <cel@citi.umich.edu> writes:
>
> > rpciod must never call a function that sleeps. if this
> > happens, the whole NFS client stops working until the function
> > wakes up again. this is not really bogus -- it is similar to
> > restrictions placed on socket callbacks.
>
> I'm in France at the moment, and am therefore not really able to
> follow up on this thread for the moment. I'll try to clarify the above
> though:
>
> 2 reasons why rpciod cannot block:
>
> 1) Doing so will slow down I/O for *all* NFS users.
> 2) There's a minefield of possible deadlock situations: waiting on a
> locked page is the main no-no since rpciod itself is the process
> that needs to complete the read I/O and unlock the page.
>

Yes. Both of these would indicate that rpciod is the wrong process
to be performing the invalidation.

Is it not possible to co-opt a user process to perform the
invalidation? Just

inode->is_kaput = 1;

in rpciod?