Commit 40dc9416 authored by Paolo Abeni's avatar Paolo Abeni Committed by Jakub Kicinski
Browse files

mptcp: schedule work for better snd subflow selection



Otherwise the packet scheduler policy will not be
enforced when pushing pending data at MPTCP-level
ack reception time.

Reviewed-by: default avatarMat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent ec369c3a
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -2242,6 +2242,7 @@ static void mptcp_worker(struct work_struct *work)
	if (unlikely(state == TCP_CLOSE))
		goto unlock;

	mptcp_push_pending(sk, 0);
	mptcp_check_data_fin_ack(sk);
	__mptcp_flush_join_list(msk);

@@ -2899,11 +2900,15 @@ void __mptcp_check_push(struct sock *sk, struct sock *ssk)
	if (!mptcp_send_head(sk))
		return;

	if (!sock_owned_by_user(sk))
	if (!sock_owned_by_user(sk)) {
		if (mptcp_subflow_get_send(mptcp_sk(sk)) == ssk)
			__mptcp_subflow_push_pending(sk, ssk);
		else
			mptcp_schedule_work(sk);
	} else {
		set_bit(MPTCP_PUSH_PENDING, &mptcp_sk(sk)->flags);
	}
}

#define MPTCP_DEFERRED_ALL (TCPF_WRITE_TIMER_DEFERRED)