Re: page_launder() bug

Marcelo Tosatti
2001-05-08T03:26:45Z

On Mon, 7 May 2001, David S. Miller wrote:

>
> Marcelo Tosatti writes:
> > I just thought about this case:
> >
> > We find a dead swap cache page, so dead_swap_page goes to 1.
> >
> > We call swap_writepage(), but in the meantime the swapin readahead code
> > got a reference on the swap map for the page.
> >
> > We write the page out because "(swap_count(page) > 1)", and we may
> > not have __GFP_IO set in the gfp_mask. Boom.
>
> Hmmm, can't this happen without my patch?

No. We will never call writepage() without __GFP_IO without your patch.

> Nothing stops people from getting references to the page
> between the "Page is or was in use?" test and the line
> which does "TryLockPage(page)".

I don't see any problem with people getting a reference to the page there.