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.