On Mon, Sep 14, 2020 at 10:59 AM Peter Xu <peterx@xxxxxxxxxx> wrote: > > However now I'm a bit confused on why FOLL_COW must be with FOLL_FORCE even > without the enforced COW... Shouldn't FOLL_COW be able to happen even without > FOLL_FORCE (as long as when a page is shared, and the gup is with WRITE > permission)? Not sure what I've missed, though. Afaik, the FOLL_FORCE test was (and is) unnecessary. If FOLL_COW is set, we're going through this the second time, and we either had that pte_write() or we had FOLL_FORCE originally. So can_follow_write_pte() doesn't need the FOLL_FORCE test - it's redundant - but it isn't technically wrong either. Linus