introduce copy_page_to_iter, kill loop over iovec in generic_file_aio_read()
authorAl Viro <viro@zeniv.linux.org.uk>
Mon, 3 Feb 2014 22:07:03 +0000 (17:07 -0500)
committerAl Viro <viro@zeniv.linux.org.uk>
Wed, 2 Apr 2014 03:19:21 +0000 (23:19 -0400)
commit6e58e79db8a16222b31fc8da1ca2ac2dccfc4237
tree3babba99823f4f723a119a7ed61372baed4786bc
parent9223687863ffa63fa655f52ef64148ee08dee4d1
introduce copy_page_to_iter, kill loop over iovec in generic_file_aio_read()

generic_file_aio_read() was looping over the target iovec, with loop over
(source) pages nested inside that.  Just set an iov_iter up and pass *that*
to do_generic_file_aio_read().  With copy_page_to_iter() doing all work
of mapping and copying a page to iovec and advancing iov_iter.

Switch shmem_file_aio_read() to the same and kill file_read_actor(), while
we are at it.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
include/linux/fs.h
include/linux/uio.h
mm/filemap.c
mm/shmem.c