]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/blobdiff - net/rxrpc/sendmsg.c
rxrpc: Implement slow-start
[mirror_ubuntu-zesty-kernel.git] / net / rxrpc / sendmsg.c
index 99939372b5a4c37d47d66a6b6d348b0a7ff7cab0..1f8040d823959ffe8178fffcedc30a8511b2534b 100644 (file)
@@ -45,7 +45,9 @@ static int rxrpc_wait_for_tx_window(struct rxrpc_sock *rx,
        for (;;) {
                set_current_state(TASK_INTERRUPTIBLE);
                ret = 0;
-               if (call->tx_top - call->tx_hard_ack < call->tx_winsize)
+               if (call->tx_top - call->tx_hard_ack <
+                   min_t(unsigned int, call->tx_winsize,
+                         call->cong_cwnd + call->cong_extra))
                        break;
                if (call->state >= RXRPC_CALL_COMPLETE) {
                        ret = -call->error;
@@ -203,7 +205,8 @@ static int rxrpc_send_data(struct rxrpc_sock *rx,
                        _debug("alloc");
 
                        if (call->tx_top - call->tx_hard_ack >=
-                           call->tx_winsize) {
+                           min_t(unsigned int, call->tx_winsize,
+                                 call->cong_cwnd + call->cong_extra)) {
                                ret = -EAGAIN;
                                if (msg->msg_flags & MSG_DONTWAIT)
                                        goto maybe_error;