void iov_iter_advance(struct iov_iter *i, size_t bytes); 迭代器(或其一部分)引用的缓冲区可以通过以下方式清除: size_t iov_iter_zero(size_t bytes, struct iov_iter *); 可以从许多帮助器函数中获得有关迭代器的信息: size_t iov_iter_single_seg_count(const struct iov_iter *i); int iov_i...
@@ -1078,11 +1146,16 @@ void iov_iter_advance(struct iov_iter *i, size_t size) i->count -= size; return; } if (unlikely(iov_iter_is_xarray(i))) { i->iov_offset += size; i->count -= size; return; } if (iov_iter_is_bvec(i)) { ...
@@ -876,14 +876,14 @@ static void iov_iter_iovec_advance(struct iov_iter *i, size_t size) i->count -= size; size += i->iov_offset; // from beginning of current segment for (iov = i->iov, end = iov + i->nr_segs; iov < end; iov++) { for (iov = iter_iov(i), ...
+int copy_struct_from_iter(void *dst, size_t ksize, struct iov_iter *i); size_t _copy_to_iter(const void *addr, size_t bytes, struct iov_iter *i); size_t _copy_from_iter(void *addr, size_t bytes, struct iov_iter *i); diff --git a/lib/iov_iter.c b/lib/iov_iter.c ...
This gets rid of a usually needless call to iov_iter_advance(). Signed-off-by: Kent Overstreet <k...@daterainc.com> Cc: Alexander Viro <v...@zeniv.linux.org.uk> Cc: Jens Axboe <ax...@kernel.dk> Cc: Chris Mason <c...@fb.com> ...
return iterate_bvec(i, bytes, addr, NULL, memcpy_from_iter_mc); } static __always_inline size_t __copy_from_iter(void *addr, size_t bytes, struct iov_iter *i) { if (unlikely(iov_iter_is_copy_mc(i))) return __copy_from_iter_mc(addr, bytes, i); return iterate_and_advance(...
Development version of the Upstream MultiPath TCP Linux kernel 🐧 - mptcp_net-next/include/linux/iov_iter.h at 807404d66fcf898d4bcc6a3e3edb07ffd5b88400 · multipath-tcp/mptcp_net-next
Re: [PATCH v9 1/9] iov_iter: add c... Omar Sandoval [PATCH v9 5/9] btrfs: add ram_bytes and offset to b... Omar Sandoval [PATCH v9 3/9] fs: add RWF_ENCODED for reading/writ... Omar Sandoval [PATCH v9 4/9] btrfs: don't advance offset for comp... Omar Sandoval [PATCH...
copy_struct_from_iter(), but decided not to for consistency with copy_struct_from_user(). openat2() seems to be the only user of copy_struct_from_user() that doesn't limit to PAGE_SIZE, which is odd given that Aleksa wrote both ...
> > Maybe this should be more than a recommendation, and just be inside > > copy_struct_from_iter(), because otherwise the "check_zeroed_user()" > > call might be quite the timesink for somebody who does something > > stupid. ...