On Wed,  1 Mar 2017 22:38:09 +0800 "Huang, Ying" <ying.hu...@intel.com> wrote:

> Before using cluster lock in free_swap_and_cache(), the
> swap_info_struct->lock will be held during freeing the swap entry and
> acquiring page lock, so the page swap count will not change when
> testing page information later.  But after using cluster lock, the
> cluster lock (or swap_info_struct->lock) will be held only during
> freeing the swap entry.  So before acquiring the page lock, the page
> swap count may be changed in another thread.  If the page swap count
> is not 0, we should not delete the page from the swap cache.  This is
> fixed via checking page swap count again after acquiring the page
> lock.

What are the user-visible runtime effects of this bug?  Please always
include this info when fixing things, thanks.

Reply via email to