aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2016-10-06 03:11:49 -0400
committerDavid Howells <dhowells@redhat.com>2016-10-06 03:11:49 -0400
commita9f312d98affab387557e2795d4e11ad82a4e4e8 (patch)
tree25a856ab14f16c87c5c626096c7967ccfae2b348
parent7212a57e8eaa2572481398532d7be0c2685362b9 (diff)
rxrpc: Only ping for lost reply in client call
When a reply is deemed lost, we send a ping to find out the other end received all the request data packets we sent. This should be limited to client calls and we shouldn't do this on service calls. Signed-off-by: David Howells <dhowells@redhat.com>
-rw-r--r--net/rxrpc/input.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/rxrpc/input.c b/net/rxrpc/input.c
index 3ad9f75031e3..103d2b0d4690 100644
--- a/net/rxrpc/input.c
+++ b/net/rxrpc/input.c
@@ -847,7 +847,8 @@ static void rxrpc_input_ack(struct rxrpc_call *call, struct sk_buff *skb,
847 847
848 if (call->rxtx_annotations[call->tx_top & RXRPC_RXTX_BUFF_MASK] & 848 if (call->rxtx_annotations[call->tx_top & RXRPC_RXTX_BUFF_MASK] &
849 RXRPC_TX_ANNO_LAST && 849 RXRPC_TX_ANNO_LAST &&
850 summary.nr_acks == call->tx_top - hard_ack) 850 summary.nr_acks == call->tx_top - hard_ack &&
851 rxrpc_is_client_call(call))
851 rxrpc_propose_ACK(call, RXRPC_ACK_PING, skew, sp->hdr.serial, 852 rxrpc_propose_ACK(call, RXRPC_ACK_PING, skew, sp->hdr.serial,
852 false, true, 853 false, true,
853 rxrpc_propose_ack_ping_for_lost_reply); 854 rxrpc_propose_ack_ping_for_lost_reply);