diff options
author | David Howells <dhowells@redhat.com> | 2021-04-25 22:02:38 +0100 |
---|---|---|
committer | David Howells <dhowells@redhat.com> | 2021-04-26 22:55:12 +0100 |
commit | 3d14ec1fe61aebe3da85a9b8f2c3d61e43d522e6 (patch) | |
tree | bb6b15242a45a6e6fc08d4e12fd469b0ee3f4565 /include/linux/uio.h | |
parent | 26aaeffcafe6cbb7c3978fa6ed7555122f8c9f8c (diff) |
iov_iter: Four fixes for ITER_XARRAY
Fix four things[1] in the patch that adds ITER_XARRAY[2]:
(1) Remove the address_space struct predeclaration. This is a holdover
from when it was ITER_MAPPING.
(2) Fix _copy_mc_to_iter() so that the xarray segment updates count and
iov_offset in the iterator before returning.
(3) Fix iov_iter_alignment() to not loop in the xarray case. Because the
middle pages are all whole pages, only the end pages need be
considered - and this can be reduced to just looking at the start
position in the xarray and the iteration size.
(4) Fix iov_iter_advance() to limit the size of the advance to no more
than the remaining iteration size.
Reported-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David Howells <dhowells@redhat.com>
Reviewed-by: Al Viro <viro@zeniv.linux.org.uk>
Tested-by: Jeff Layton <jlayton@redhat.com>
Tested-by: Dave Wysochanski <dwysocha@redhat.com>
Link: https://lore.kernel.org/r/YIVrJT8GwLI0Wlgx@zeniv-ca.linux.org.uk [1]
Link: https://lore.kernel.org/r/161918448151.3145707.11541538916600921083.stgit@warthog.procyon.org.uk [2]
Diffstat (limited to 'include/linux/uio.h')
-rw-r--r-- | include/linux/uio.h | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/include/linux/uio.h b/include/linux/uio.h index 5f5ffc45d4aa..d3ec87706d75 100644 --- a/include/linux/uio.h +++ b/include/linux/uio.h @@ -10,7 +10,6 @@ #include <uapi/linux/uio.h> struct page; -struct address_space; struct pipe_inode_info; struct kvec { |