diff --git a/[refs] b/[refs] index bf7799e21f1b..8e29c729c7e2 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: cc0191aeef73e5aa0c7f9a586d4bb27ed67facbb +refs/heads/master: 19e6454ca778e11e81497bd87c930dc0defd03d7 diff --git a/trunk/net/rxrpc/ar-output.c b/trunk/net/rxrpc/ar-output.c index 591c4422205e..cc9102c5b588 100644 --- a/trunk/net/rxrpc/ar-output.c +++ b/trunk/net/rxrpc/ar-output.c @@ -640,6 +640,7 @@ static int rxrpc_send_data(struct kiocb *iocb, goto efault; sp->remain -= copy; skb->mark += copy; + copied += copy; len -= copy; segment -= copy; @@ -709,6 +710,8 @@ static int rxrpc_send_data(struct kiocb *iocb, } while (segment > 0); +success: + ret = copied; out: call->tx_pending = skb; _leave(" = %d", ret); @@ -725,7 +728,7 @@ static int rxrpc_send_data(struct kiocb *iocb, maybe_error: if (copied) - ret = copied; + goto success; goto out; efault: