On Tue, May 19, 2020 at 01:28:23AM +0530, Souptick Joarder wrote: > The idea is to get rid of write parameter. Instead caller will pass > FOLL_WRITE to __get_user_pages_fast(). This will not change any > functionality of the API. Once it is upstream all the callers will > be changed to pass FOLL_WRITE. Uhh ... until you change all the callers, haven't you just broken all the callers? > -int __get_user_pages_fast(unsigned long start, int nr_pages, int write, > - struct page **pages) > +int __get_user_pages_fast(unsigned long start, int nr_pages, > + unsigned int gup_flags, struct page **pages) > { > unsigned long len, end; > unsigned long flags; > @@ -2685,10 +2692,7 @@ int __get_user_pages_fast(unsigned long start, int nr_pages, int write, > * Internally (within mm/gup.c), gup fast variants must set FOLL_GET, > * because gup fast is always a "pin with a +1 page refcount" request. > */ > - unsigned int gup_flags = FOLL_GET; > - > - if (write) > - gup_flags |= FOLL_WRITE; > + gup_flags |= FOLL_GET;