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@huawei.com