On Mon, 2022-03-28 at 11:00 +0200, Oscar Salvador wrote:
On Fri, Mar 25, 2022 at 04:14:28PM -0400, Rik van Riel wrote:
+ if (invalidate_inode_page(page)) + poisonret = VM_FAULT_NOPAGE;
What is the effect of returning VM_FAULT_NOPAGE? I take that we are cool because the pte has been installed and points to a new page? (I could not find where that is being done).
It results in us returning to userspace as if the page fault had been handled, resulting in a second fault on the same address.
However, now the page is no longer in the page cache, and we can read it in from disk, to a page that is not hardware poisoned, and we can then use that second page without issues.