tcp: update the netstamp_needed counter when cloning sockets

This fixes a netstamp_needed accounting issue when the listen socket
has SO_TIMESTAMP set:

s = socket(AF_INET, SOCK_STREAM, 0);
setsockopt(s, SOL_SOCKET, SO_TIMESTAMP, 1); -> netstamp_needed = 1
bind(s, ...);
listen(s, ...);
s2 = accept(s, ...); -> netstamp_needed = 1
close(s2); -> netstamp_needed = 0
close(s); -> netstamp_needed = -1

Signed-off-by: Octavian Purdila <opurdila@ixiacom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by Octavian Purdila and committed by David S. Miller 704da560 1ca518b6

+4
+4
net/core/sock.c
··· 1205 1205 1206 1206 if (newsk->sk_prot->sockets_allocated) 1207 1207 percpu_counter_inc(newsk->sk_prot->sockets_allocated); 1208 + 1209 + if (sock_flag(newsk, SOCK_TIMESTAMP) || 1210 + sock_flag(newsk, SOCK_TIMESTAMPING_RX_SOFTWARE)) 1211 + net_enable_timestamp(); 1208 1212 } 1209 1213 out: 1210 1214 return newsk;