* Al Viro <viro(a)ZenIV.linux.org.uk> wrote:
On Fri, May 08, 2015 at 07:37:59AM +0200, Ingo Molnar wrote:
> So if code does iov_iter_get_pages_alloc() on a user address that
> has a real struct page behind it - and some other code does a
> regular get_user_pages() on it, we'll have two sets of struct page
> descriptors, the 'real' one, and a fake allocated one, right?
Huh? iov_iter_get_pages() is given an array of pointers to struct
page, which it fills with what it finds. iov_iter_get_pages_alloc()
*allocates* such an array, fills that with what it finds and gives
the allocated array to caller.
We are not allocating any struct page instances in either of those.
Ah, stupid me - thanks for the explanation!