... and adjust the callers
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
        ssize_t n;
        int npages, i;
 
-       n = iov_iter_get_pages(iter, sgl->pages, len, ALG_MAX_PAGES, &off);
+       n = iov_iter_get_pages2(iter, sgl->pages, len, ALG_MAX_PAGES, &off);
        if (n < 0)
                return n;
 
                len += err;
                atomic_add(err, &ctx->rcvused);
                rsgl->sg_num_bytes = err;
-               iov_iter_advance(&msg->msg_iter, err);
        }
 
        *outlen = len;
 
                err = crypto_wait_req(crypto_ahash_update(&ctx->req),
                                      &ctx->wait);
                af_alg_free_sg(&ctx->sgl);
-               if (err)
+               if (err) {
+                       iov_iter_revert(&msg->msg_iter, len);
                        goto unlock;
+               }
 
                copied += len;
-               iov_iter_advance(&msg->msg_iter, len);
        }
 
        err = 0;