Commit 589a0c1e authored by David Howells's avatar David Howells
Browse files

rxrpc: Track highest acked serial



Keep track of the highest DATA serial number that has been acked by the
peer for future purposes.

Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: linux-afs@lists.infradead.org
parent 334dfbfc
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -690,6 +690,7 @@ struct rxrpc_call {
	rxrpc_seq_t		acks_lowest_nak; /* Lowest NACK in the buffer (or ==tx_hard_ack) */
	rxrpc_seq_t		acks_lost_top;	/* tx_top at the time lost-ack ping sent */
	rxrpc_serial_t		acks_lost_ping;	/* Serial number of probe ACK */
	rxrpc_serial_t		acks_highest_serial; /* Highest serial number ACK'd */
};

/*
+4 −0
Original line number Diff line number Diff line
@@ -967,6 +967,10 @@ static void rxrpc_input_ack(struct rxrpc_call *call, struct sk_buff *skb)
	call->acks_first_seq = first_soft_ack;
	call->acks_prev_seq = prev_pkt;

	if (buf.ack.reason != RXRPC_ACK_PING &&
	    after(acked_serial, call->acks_highest_serial))
		call->acks_highest_serial = acked_serial;

	/* Parse rwind and mtu sizes if provided. */
	if (buf.info.rxMTU)
		rxrpc_input_ackinfo(call, skb, &buf.info);