Messages in this thread | | | Subject | NFS infinite loop in filemap_fault() | From | Miklos Szeredi <> | Date | Wed, 07 May 2008 22:34:38 +0200 |
| |
Page fault on NFS apparently goes into an infinite loop if the read on the server fails.
I don't understand the NFS readpage code, but the filemap_fault() code looks somewhat suspicious:
/* * Umm, take care of errors if the page isn't up-to-date. * Try to re-read it _once_. We do this synchronously, * because there really aren't any performance issues here * and we need to check for errors. */ ClearPageError(page); error = mapping->a_ops->readpage(file, page); page_cache_release(page);
if (!error || error == AOP_TRUNCATED_PAGE) goto retry_find;
The comment doesn't seem to match what the it actually does: if ->readpage() is asynchronous, then this will just repeat everything, without any guarantee that it will re-read once.
What am I missing?
Miklos
| |