summaryrefslogtreecommitdiff
path: root/ipc/compat.c
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2021-04-27 03:33:42 +0300
committerAl Viro <viro@zeniv.linux.org.uk>2021-06-10 18:45:18 +0300
commit1b4fb5ffd79bac27a7b9beda63c827c7d7457c45 (patch)
treebc2582992acea4f6e648d71eca5f0da2082524bb /ipc/compat.c
parent7491a2bf64e3a4f1699deba97728cd9f8856bdf3 (diff)
downloadlinux-1b4fb5ffd79bac27a7b9beda63c827c7d7457c45.tar.xz
iov_iter: teach iterate_{bvec,xarray}() about possible short copies
... and now we finally can sort out the mess in _copy_mc_to_iter(). Provide a variant of iterate_and_advance() that does *NOT* ignore the return values of bvec, xarray and kvec callbacks, use that in _copy_mc_to_iter(). That gets rid of magic in those callbacks - we used to need it so we'd get at least the right return value in case of failure halfway through. As a bonus, now iterator is advanced by the amount actually copied for all flavours. That's what the callers expect and it used to do that correctly in iovec and xarray cases. However, in kvec and bvec cases the iterator had not been advanced on such failures, breaking the users. Fixed now... Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'ipc/compat.c')
0 files changed, 0 insertions, 0 deletions