Re: serious bug in filemap.c

Stephen C. Tweedie (sct@dcs.ed.ac.uk)
Mon, 20 May 1996 21:27:21 +0100


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.