Commit cd69a07b authored by David Howells's avatar David Howells Committed by Jakub Kicinski
Browse files

rxrpc: Fix injection of packet loss



Fix the code that injects packet loss for testing to make sure
call->tx_transmitted is updated.

Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: linux-afs@lists.infradead.org
Link: https://patch.msgid.link/20241204074710.990092-15-dhowells@redhat.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 9e3cccd1
Loading
Loading
Loading
Loading
+11 −10
Original line number Diff line number Diff line
@@ -544,16 +544,6 @@ static int rxrpc_send_data_packet(struct rxrpc_call *call, struct rxrpc_txbuf *t

	len = rxrpc_prepare_data_packet(call, txb, n);

	if (IS_ENABLED(CONFIG_AF_RXRPC_INJECT_LOSS)) {
		static int lose;
		if ((lose++ & 7) == 7) {
			ret = 0;
			trace_rxrpc_tx_data(call, txb->seq, txb->serial,
					    txb->flags, true);
			goto done;
		}
	}

	iov_iter_kvec(&msg.msg_iter, WRITE, call->local->kvec, n, len);

	msg.msg_name	= &call->peer->srx.transport;
@@ -579,6 +569,17 @@ static int rxrpc_send_data_packet(struct rxrpc_call *call, struct rxrpc_txbuf *t
		frag = rxrpc_tx_point_call_data_nofrag;
	}

	if (IS_ENABLED(CONFIG_AF_RXRPC_INJECT_LOSS)) {
		static int lose;

		if ((lose++ & 7) == 7) {
			ret = 0;
			trace_rxrpc_tx_data(call, txb->seq, txb->serial,
					    txb->flags, true);
			goto done;
		}
	}

retry:
	/* send the packet by UDP
	 * - returns -EMSGSIZE if UDP would have to fragment the packet