On Tue, Oct 24, 2017 at 10:47:00AM +0800, Huang, Ying wrote: > From: Ying Huang <ying.huang@xxxxxxxxx> > > __swp_swapcount() is used in __read_swap_cache_async(). Where the > invalid swap entry (offset > max) may be supplied during swap > readahead. But __swp_swapcount() will print error message for these > expected invalid swap entry as below, which will make the users > confusing. > > swap_info_get: Bad swap offset entry 0200f8a7 > > So the swap entry checking code in __swp_swapcount() is changed to > avoid printing error message for it. To avoid to duplicate code with > __swap_duplicate(), a new helper function named > __swap_info_get_silence() is added and invoked in both places. It's the problem caused by readahead, not __swap_info_get which is low-end primitive function. Instead, please fix high-end swapin_readahead to limit to last valid block as handling to avoid swap header which is special case, too.