On Fri, Sep 27, 2024 at 05:44:52PM +0200, David Hildenbrand wrote: > /** > * folio_try_add_pins() - add pins to an already-pinned folio > * @folio: the folio to add more pins to > * > * Try to add more pins to an already-pinned folio. The semantics > * of the pin (e.g., FOLL_WRITE) follow any existing pin and cannot > * be changed. > * > * This function is helpful when having obtained a pin on a large folio > * using memfd_pin_folios(), but wanting to logically unpin parts > * (e.g., individual pages) of the folio later, for example, using > * unpin_user_page_range_dirty_lock(). > * > * This is not the right interface to initially pin a folio. > */ > int folio_try_add_pins(struct folio *folio, unsigned int pins) > { > VM_WARN_ON_ONCE(!folio_maybe_dma_pinned(folio)); > > return try_grab_folio(folio, pins, FOLL_PIN); > } That looks pretty good to me too Thanks, Jason