fs: do not prefault sys_write() user buffer pages

Based on commit 998ef75ddb57 ("fs: do not prefault sys_write() user
buffer pages") by Dave Hansen, but:

* Fix generic_perform_write as well as iomap_write_iter.

* copy_page_from_iter_atomic() doesn't trigger page faults [see commit
  9e8c2af96e0d ("callers of iov_copy_from_user_atomic() don't need
  pagecache_disable()")].

* If fault_in_iov_iter_readable() fails to fault in the entire buffer,
  we still want to read everything up to the fault position.

Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
2 files changed