On Tue, Sep 06, 2022 at 12:37:00AM -0700, John Hubbard wrote: > On 9/6/22 00:22, Christoph Hellwig wrote: > > On Tue, Sep 06, 2022 at 12:10:54AM -0700, John Hubbard wrote: > >> I would be delighted if that were somehow possible. Every time I think > >> it's possible, it has fallen apart. The fact that bio_release_pages() > >> will need to switch over from put_page() to unpin_user_page(), combined > >> with the fact that there are a lot of callers that submit bios, has > >> led me to the current approach. > > > > We can (temporarily) pass the gup flag to bio_release_pages or even > > better add a new bio_unpin_pages helper that undoes the pin side. > > That is: don't try to reuse the old APIs, but ad new ones, just like > > we do on the lower layers. > > OK...so, to confirm: the idea is to convert these callsites (below) to > call a new bio_unpin_pages() routine that does unpin_user_page(). Yeah. And to stay symmetric also a new bio_iov_iter_pin_pages for the pin side.