iov_iter_advance() was removed from the caller due to fix to the bvec branch. However it is still needed to handle the kvec branch. Otherwise it will stuck there forever.
Fixes: 48373aae01e17 ("fs/fuse kio: use iov_iter_get_pages2() + iov_iter_revert() scheme in do_recv_one_seg()") https://virtuozzo.atlassian.net/browse/PSBM-157056 Signed-off-by: Liu Kui <kui....@virtuozzo.com> --- fs/fuse/kio/pcs/pcs_sock_io.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/fs/fuse/kio/pcs/pcs_sock_io.c b/fs/fuse/kio/pcs/pcs_sock_io.c index 189cf5c98c7d..29a5c272d6fe 100644 --- a/fs/fuse/kio/pcs/pcs_sock_io.c +++ b/fs/fuse/kio/pcs/pcs_sock_io.c @@ -219,9 +219,10 @@ static int do_recv_one_seg(struct socket *sock, struct iov_iter *it, size_t left kv.iov_len = size; ret = do_sock_recv(sock, kv.iov_base, kv.iov_len); - } + if (ret > 0) + iov_iter_advance(it, ret); - if (iov_iter_is_bvec(it)) { + } else if (iov_iter_is_bvec(it)) { size_t offset; ssize_t len; struct page* page; -- 2.39.3 (Apple Git-146) _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel