Re: find_get_swapcache_page() question

From: Hugh Dickins (hugh@veritas.com)
Date: Tue Aug 28 2001 - 11:27:52 EST


On Tue, 28 Aug 2001, Rik van Riel wrote:
> On Tue, 28 Aug 2001, Hugh Dickins wrote:
>
> > if (!PageSwapCache(found))
> > BUG();
> > if (found->mapping != &swapper_space)
> > BUG();
> > are not safe, since there may a concurrent remove_from_swap_cache(),
> > either from try_to_unuse() or from Rik's new vm_swap_full() deletion.
> > Those tests would be safe if the page were locked, but it's not.
>
> vm_swap_full() is called with the page locked,
> remove_from_swap_cache() also seems to want the
> page locked...

Certainly (I seem to recall composing a comment to that effect
recently :-)! Sorry for being unclear, I meant that those tests
in lookup_swap_cache() are made without the page being locked
by lookup_swap_cache() or its caller (and I'm not proposing
that the page should be locked, but the unsafe tests removed).

Hugh

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Fri Aug 31 2001 - 21:00:30 EST