diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c index 9c6a93ec7706f..0724853e7ed85 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c @@ -811,15 +811,6 @@ ssize_t tcp_splice_read(struct socket *sock, loff_t *ppos, sock_rps_record_flow(sk); -#ifdef CONFIG_MPTCP - if (mptcp(tcp_sk(sk))) { - struct mptcp_tcp_sock *mptcp; - - mptcp_for_each_sub(tcp_sk(sk)->mpcb, mptcp) { - sock_rps_record_flow(mptcp_to_sock(mptcp)); - } - } -#endif /* * We can't seek on a socket input */ @@ -830,6 +821,16 @@ ssize_t tcp_splice_read(struct socket *sock, loff_t *ppos, lock_sock(sk); +#ifdef CONFIG_MPTCP + if (mptcp(tcp_sk(sk))) { + struct mptcp_tcp_sock *mptcp; + + mptcp_for_each_sub(tcp_sk(sk)->mpcb, mptcp) { + sock_rps_record_flow(mptcp_to_sock(mptcp)); + } + } +#endif + timeo = sock_rcvtimeo(sk, sock->file->f_flags & O_NONBLOCK); while (tss.len) { ret = __tcp_splice_read(sk, &tss);