On 3/29/22 18:04, David Hildenbrand wrote: > We want to change the way we handle R/O pins on anonymous pages that > might be shared: if we detect a possibly shared anonymous page -- > mapped R/O and not !PageAnonExclusive() -- we want to trigger unsharing > via a page fault, resulting in an exclusive anonymous page that can be > pinned reliably without getting replaced via COW on the next write > fault. > > However, the required page fault will be problematic for follow_page(): > in contrast to ordinary GUP, follow_page() doesn't trigger faults > internally. So we would have to end up failing a R/O pin via > follow_page(), although there is something mapped R/O into the page > table, which might be rather surprising. > > We don't seem to have follow_page(FOLL_PIN) users, and it's a purely > internal MM function. Let's just make our life easier and the semantics of > follow_page() clearer by just disallowing FOLL_PIN for follow_page() > completely. > > Signed-off-by: David Hildenbrand <david@xxxxxxxxxx> Acked-by: Vlastimil Babka <vbabka@xxxxxxx>