iov_iter.c: macros for iterating over iov_iter
authorAl Viro <viro@zeniv.linux.org.uk>
Thu, 27 Nov 2014 18:51:41 +0000 (13:51 -0500)
committerAl Viro <viro@zeniv.linux.org.uk>
Thu, 27 Nov 2014 23:44:10 +0000 (18:44 -0500)
commit04a311655b06163e2a94e429fe79eb8616fc5e01
tree441e212766a0d2ad42a3c796b4beea999dbdd0d6
parent5d01410fe4d92081f349b013a2e7a95429e4f2c9
iov_iter.c: macros for iterating over iov_iter

iterate_all_kinds(iter, size, ident, step_iovec, step_bvec)
iterates through the ranges covered by iter (up to size bytes total),
repeating step_iovec or step_bvec for each of those.  ident is
declared in expansion of that thing, either as struct iovec or
struct bvec, and it contains the range we are currently looking
at.  step_bvec should be a void expression, step_iovec - a size_t
one, with non-zero meaning "stop here, that many bytes from this
range left".  In the end, the amount actually handled is stored
in size.

iov_iter_copy_from_user_atomic() and iov_iter_alignment() converted
to it.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
mm/iov_iter.c