On Fri, May 08, 2015 at 07:37:59AM +0200, Ingo Molnar wrote: > same as iov_iter_get_pages(), except that pages array is allocated > (kmalloc if possible, vmalloc if that fails) and left for caller to > free. Lustre and NFS ->direct_IO() switched to it. > > Signed-off-by: Al Viro <viro@xxxxxxxxxxxxxxxxxx> > > 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. -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html