iov_iter
dio: Convert direct_IO to use iov_iter

Change the direct_IO aop to take an iov_iter argument rather than an iovec.
This will get passed down through most filesystems so that only the
__blockdev_direct_IO helper need be aware of whether user or kernel memory
is being passed to the function.

Signed-off-by: Dave Kleikamp <dave.kleikamp@oracle.com>
heavily backported for Mako from LKML reference

Signed-off-by: faux123 <reioux@gmail.com>

Conflicts:
	fs/9p/vfs_addr.c
	fs/btrfs/inode.c
	fs/ext3/inode.c
	fs/ext4/inode.c
	fs/fat/inode.c
	fs/nfs/direct.c
	fs/nilfs2/inode.c
	include/linux/nfs_fs.h