David Hildenbrand <david@xxxxxxxxxx> wrote: > > Provide a function to get an additional pin on a page that we already have > > a pin on. This will be used in fs/direct-io.c when dispatching multiple > > bios to a page we've extracted from a user-backed iter rather than redoing > > the extraction. > > > > I guess this function is only used for "replicating" an existing pin, and not > changing the semantics of an existing pin: something that was pinned > !FOLL_LONGTERM cannot suddenly become effectively pinned FOLL_LONGTERM. > > Out of curiosity, could we end up passing in an anonymous page, or is this > almost exclusively for pagecache+zero pages? (I rememebr John H. had a similar > patch where he said it would not apply to anon pages) It has to be able to handle anything in a process's VM that you can legitimately use as the buffer for a DIO read/write. If we can get a pin on it from pin_user_pages_fast(), then we need to be able to get an additional pin on it. For the moment it's just in the old DIO stuff, but it will almost certainly be necessary in the networking code too to handle splicing into network packets. David