Skip to content
  • Huang Ying's avatar
    mm/swapfile.c: use __try_to_reclaim_swap() in free_swap_and_cache() · bcd49e86
    Huang Ying authored
    The code path to reclaim the swap entry in free_swap_and_cache() is
    almost same as that of __try_to_reclaim_swap().  The largest
    difference is just coding style.  So the support to the additional
    requirement of free_swap_and_cache() is added into
    __try_to_reclaim_swap().  free_swap_and_cache() is changed to call
    __try_to_reclaim_swap(), and delete the duplicated code.  This will
    improve code readability and reduce the potential bugs.
    
    There are 2 functionality differences between __try_to_reclaim_swap()
    and swap entry reclaim code of free_swap_and_cache().
    
    - free_swap_and_cache() only reclaims the swap entry if the page is
      unmapped or swap is getting full.  The support has been added into
      __try_to_reclaim_swap().
    
    - try_to_free_swap() (called by __try_to_reclaim_swap()) checks
      pm_suspended_storage(), while free_swap_and_cache() not.  I think
      this is OK.  Because the page and the swap entry can be reclaimed
      later eventually.
    
    Link: http://lkml.kernel.org/r/20180827075535.17406-2-ying.huang@intel.com
    
    
    Signed-off-by: default avatar"Huang, Ying" <ying.huang@intel.com>
    Reviewed-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: Michal Hocko <mhocko@suse.com>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Shaohua Li <shli@kernel.org>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: Minchan Kim <minchan@kernel.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    bcd49e86