On 2020/5/6 11:47, Leizhen (ThunderTown) wrote: > > > On 2020/5/6 9:33, Leizhen (ThunderTown) wrote: >> >> >> On 2020/5/6 1:25, Matthew Wilcox wrote: >>> On Tue, May 05, 2020 at 07:55:41PM +0800, Zhen Lei wrote: >>>> +++ b/mm/swapfile.c >>>> @@ -177,8 +177,8 @@ static int discard_swap(struct swap_info_struct *si) >>>> >>>> /* Do not discard the swap header page! */ >>>> se = first_se(si); >>>> - start_block = (se->start_block + 1) << (PAGE_SHIFT - 9); >>>> - nr_blocks = ((sector_t)se->nr_pages - 1) << (PAGE_SHIFT - 9); >>>> + start_block = (se->start_block + 1) << SECTORS_PER_PAGE_SHIFT; >>>> + nr_blocks = ((sector_t)se->nr_pages - 1) << SECTORS_PER_PAGE_SHIFT; >>> >>> Thinking about this some more, wouldn't this look better? >>> >>> start_block = page_sectors(se->start_block + 1); >>> nr_block = page_sectors(se->nr_pages - 1); >>> >> >> OK,That's fine, it's clearer. And in this way, there won't be more than 80 columns. > > Should we rename "page_sectors" to "page_to_sectors"? Because we may need to define > "sectors_to_page" also. Change the "sectors_to_page" to "sectors_to_npage", npage means "number of pages" or "page number". To distinguish the use case of "pfn_to_page()" etc. The latter returns the pointer of "struct page". > >> >>> >>> . >>>