On 11/30/18 12:17 PM, Al Viro wrote: > On Fri, Nov 30, 2018 at 09:56:45AM -0700, Jens Axboe wrote: >> This explicitly sets up an ITER_KVEC from an iovec with kernel ranges >> mapped. > >> +int import_kvec(int type, const struct kvec *kvecs, unsigned nr_segs, >> + size_t bytes, struct iov_iter *iter) >> +{ >> + const struct iovec *p = (const struct iovec *) kvecs; >> + >> + iov_iter_init_type(iter, ITER_KVEC, type, p, nr_segs, bytes); >> + return 0; >> +} > > What the hell is wrong with existing iov_iter_kvec()? Hah, looks like I overlooked that. Not sure how anyone could look at lib/iov_iter.c and not get lost in the beauty of it. -- Jens Axboe