On 2022/3/28 10:24, Rik van Riel wrote: > On Mon, 2022-03-28 at 10:14 +0800, Miaohe Lin wrote: >> On 2022/3/27 4:14, Rik van Riel wrote: >> >> >>> >>>>> /* Retry if a clean page was removed >>>>> from >>>>> the cache. */ >>>>> - if (invalidate_inode_page(vmf->page)) >>>>> - poisonret = 0; >>>>> - unlock_page(vmf->page); >>>>> + if (invalidate_inode_page(page)) >>>>> + poisonret = VM_FAULT_NOPAGE; >>>>> + unlock_page(page); >>> >> >> Sure, but when I think more about this, it seems this fix isn't >> ideal: >> If VM_FAULT_NOPAGE is returned with page table unset, the process >> will >> re-trigger page fault again and again until invalidate_inode_page >> succeeds >> to evict the inode page. This might hang the process a really long >> time. >> Or am I miss something? >> > If invalidate_inode_page fails, we will return > VM_FAULT_HWPOISON, and kill the task, instead > of looping indefinitely. Oh, really sorry! It's a drowsy Monday morning. :) This patch looks good to me. Thanks! Reviewed-by: Miaohe Lin <linmiaohe@xxxxxxxxxx> >