Commit dc88e3b4 authored by Al Viro's avatar Al Viro

rds: make use of iov_iter_revert()

parent 85128b2b
...@@ -594,7 +594,6 @@ int rds_recvmsg(struct socket *sock, struct msghdr *msg, size_t size, ...@@ -594,7 +594,6 @@ int rds_recvmsg(struct socket *sock, struct msghdr *msg, size_t size,
goto out; goto out;
while (1) { while (1) {
struct iov_iter save;
/* If there are pending notifications, do those - and nothing else */ /* If there are pending notifications, do those - and nothing else */
if (!list_empty(&rs->rs_notify_queue)) { if (!list_empty(&rs->rs_notify_queue)) {
ret = rds_notify_queue_get(rs, msg); ret = rds_notify_queue_get(rs, msg);
...@@ -630,7 +629,6 @@ int rds_recvmsg(struct socket *sock, struct msghdr *msg, size_t size, ...@@ -630,7 +629,6 @@ int rds_recvmsg(struct socket *sock, struct msghdr *msg, size_t size,
rdsdebug("copying inc %p from %pI4:%u to user\n", inc, rdsdebug("copying inc %p from %pI4:%u to user\n", inc,
&inc->i_conn->c_faddr, &inc->i_conn->c_faddr,
ntohs(inc->i_hdr.h_sport)); ntohs(inc->i_hdr.h_sport));
save = msg->msg_iter;
ret = inc->i_conn->c_trans->inc_copy_to_user(inc, &msg->msg_iter); ret = inc->i_conn->c_trans->inc_copy_to_user(inc, &msg->msg_iter);
if (ret < 0) if (ret < 0)
break; break;
...@@ -644,7 +642,7 @@ int rds_recvmsg(struct socket *sock, struct msghdr *msg, size_t size, ...@@ -644,7 +642,7 @@ int rds_recvmsg(struct socket *sock, struct msghdr *msg, size_t size,
rds_inc_put(inc); rds_inc_put(inc);
inc = NULL; inc = NULL;
rds_stats_inc(s_recv_deliver_raced); rds_stats_inc(s_recv_deliver_raced);
msg->msg_iter = save; iov_iter_revert(&msg->msg_iter, ret);
continue; continue;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment