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