Messages in this thread |  | | Date | Mon, 20 May 1996 21:27:21 +0100 | From | "Stephen C. Tweedie" <> | Subject | Re: serious bug in filemap.c |
| |
Hi,
On Sun, 19 May 1996 20:34:19 +0400 (MSD), "A.N.Kuznetsov" <kuznet@ms2.inr.ac.ru> said:
> Hello! > It is possible (and occurs!) that not uptodate pages are mapped into > process space. > Maybe, this fix is not complete.
It doesn't look quite right.
> ... > wait_on_page(page); > #ifndef NO_ANK_FIX > if (!PageUptodate(page)) { > inode->i_op->readpage(inode, page); > ...
wait_on_page() should not return until all the outstanding IO on the page has been completed, and the page is now unlocked. At this point, !PageUptodate(page) is not an indication that IO is still outstanding --- it is an indication that there was an error in the IO and the page has not been read correctly.
We definitely have to deal with this condition, but I think the right way would be to treat it as an error rather than simply resubmitting the IO request.
Cheers, Stephen. -- Stephen Tweedie <sct@dcs.ed.ac.uk> Department of Computer Science, Edinburgh University, Scotland.
|  |