tcp_metrics: do not create an entry from tcp_init_metrics()
authorEric Dumazet <edumazet@google.com>
Fri, 22 Sep 2023 22:03:55 +0000 (22:03 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 20 Nov 2023 10:58:59 +0000 (11:58 +0100)
[ Upstream commit a135798e6e200ecb2f864cecca6d257ba278370c ]

tcp_init_metrics() only wants to get metrics if they were
previously stored in the cache. Creating an entry is adding
useless costs, especially when tcp_no_metrics_save is set.

Fixes: 51c5d0c4b169 ("tcp: Maintain dynamic metrics in local cache.")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: David Ahern <dsahern@kernel.org>
Acked-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/ipv4/tcp_metrics.c

index 0c03f56..7aca12c 100644 (file)
@@ -478,7 +478,7 @@ void tcp_init_metrics(struct sock *sk)
                goto reset;
 
        rcu_read_lock();
-       tm = tcp_get_metrics(sk, dst, true);
+       tm = tcp_get_metrics(sk, dst, false);
        if (!tm) {
                rcu_read_unlock();
                goto reset;