summaryrefslogtreecommitdiff
path: root/include/linux/uio.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/uio.h')
-rw-r--r--include/linux/uio.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/include/linux/uio.h b/include/linux/uio.h
index 27e3fd942960..4218624b7f78 100644
--- a/include/linux/uio.h
+++ b/include/linux/uio.h
@@ -51,7 +51,8 @@ struct iov_iter {
};
size_t count;
union {
- const struct iovec *iov;
+ /* use iter_iov() to get the current vec */
+ const struct iovec *__iov;
const struct kvec *kvec;
const struct bio_vec *bvec;
struct xarray *xarray;
@@ -68,6 +69,8 @@ struct iov_iter {
};
};
+#define iter_iov(iter) (iter)->__iov
+
static inline enum iter_type iov_iter_type(const struct iov_iter *i)
{
return i->iter_type;
@@ -146,9 +149,9 @@ static inline size_t iov_length(const struct iovec *iov, unsigned long nr_segs)
static inline struct iovec iov_iter_iovec(const struct iov_iter *iter)
{
return (struct iovec) {
- .iov_base = iter->iov->iov_base + iter->iov_offset,
+ .iov_base = iter_iov(iter)->iov_base + iter->iov_offset,
.iov_len = min(iter->count,
- iter->iov->iov_len - iter->iov_offset),
+ iter_iov(iter)->iov_len - iter->iov_offset),
};
}