Re: [PATCH 01/32] iov_iter: Add ITER_MAPPING

From: David Howells
Date: Sun Jul 19 2020 - 05:52:13 EST


Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote:

> My main problem here is that your iterate_mapping() assumes that STEP is
> safe under rcu_read_lock(), with no visible mentioning of that fact.

Yeah, that's probably the biggest objection to this.

> Note, BTW, that iov_iter_for_each_range() quietly calls user-supplied
> callback in such context.

And calls kmap(), but should probably use kmap_atomic(). git grep doesn't
show any users of this, so can it be removed?

> Incidentally, do you ever have different steps for bvec and mapping?

Yes:

csum_and_copy_from_iter_full()
iov_iter_npages()
iov_iter_get_pages()
iov_iter_get_pages_alloc()

But I've tried to use the internal representation struct for bvec where I can
rather than inventing a new one.

David