Re: [PATCH v2 4/7] iov_iter: new iov_iter_pin_pages*() routines

From: Christoph Hellwig
Date: Tue Sep 06 2022 - 02:48:08 EST


I'd it one step back. For BVECS we never need a get or pin. The
block layer already does this, an the other callers should as well.
For KVEC the same is true. For PIPE and xarray as you pointed out
we can probably just do the pin, it is not like these are performance
paths.

So, I'd suggest to:

- factor out the user backed and bvec cases from
__iov_iter_get_pages_alloc into helper just to keep
__iov_iter_get_pages_alloc readable.
- for the pin case don't use the existing bvec helper at all, but
copy the logic for the block layer for not pinning.