aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/net/ip.h2
-rw-r--r--net/ipv4/inet_timewait_sock.c15
2 files changed, 13 insertions, 4 deletions
diff --git a/include/net/ip.h b/include/net/ip.h
index 79d13192ecc8..a8275b1338d7 100644
--- a/include/net/ip.h
+++ b/include/net/ip.h
@@ -164,7 +164,7 @@ DECLARE_SNMP_STAT(struct linux_mib, net_statistics);
164#define NET_INC_STATS(net, field) do { (void)net; SNMP_INC_STATS(net_statistics, field); } while (0) 164#define NET_INC_STATS(net, field) do { (void)net; SNMP_INC_STATS(net_statistics, field); } while (0)
165#define NET_INC_STATS_BH(net, field) do { (void)net; SNMP_INC_STATS_BH(net_statistics, field); } while (0) 165#define NET_INC_STATS_BH(net, field) do { (void)net; SNMP_INC_STATS_BH(net_statistics, field); } while (0)
166#define NET_INC_STATS_USER(net, field) do { (void)net; SNMP_INC_STATS_USER(net_statistics, field); } while (0) 166#define NET_INC_STATS_USER(net, field) do { (void)net; SNMP_INC_STATS_USER(net_statistics, field); } while (0)
167#define NET_ADD_STATS_BH(field, adnd) SNMP_ADD_STATS_BH(net_statistics, field, adnd) 167#define NET_ADD_STATS_BH(net, field, adnd) do { (void)net; SNMP_ADD_STATS_BH(net_statistics, field, adnd); } while (0)
168#define NET_ADD_STATS_USER(field, adnd) SNMP_ADD_STATS_USER(net_statistics, field, adnd) 168#define NET_ADD_STATS_USER(field, adnd) SNMP_ADD_STATS_USER(net_statistics, field, adnd)
169 169
170extern unsigned long snmp_fold_field(void *mib[], int offt); 170extern unsigned long snmp_fold_field(void *mib[], int offt);
diff --git a/net/ipv4/inet_timewait_sock.c b/net/ipv4/inet_timewait_sock.c
index 06006a5ac8b9..75c2def8f9a0 100644
--- a/net/ipv4/inet_timewait_sock.c
+++ b/net/ipv4/inet_timewait_sock.c
@@ -160,6 +160,9 @@ rescan:
160 __inet_twsk_del_dead_node(tw); 160 __inet_twsk_del_dead_node(tw);
161 spin_unlock(&twdr->death_lock); 161 spin_unlock(&twdr->death_lock);
162 __inet_twsk_kill(tw, twdr->hashinfo); 162 __inet_twsk_kill(tw, twdr->hashinfo);
163#ifdef CONFIG_NET_NS
164 NET_INC_STATS_BH(twsk_net(tw), LINUX_MIB_TIMEWAITED);
165#endif
163 inet_twsk_put(tw); 166 inet_twsk_put(tw);
164 killed++; 167 killed++;
165 spin_lock(&twdr->death_lock); 168 spin_lock(&twdr->death_lock);
@@ -178,8 +181,9 @@ rescan:
178 } 181 }
179 182
180 twdr->tw_count -= killed; 183 twdr->tw_count -= killed;
181 NET_ADD_STATS_BH(LINUX_MIB_TIMEWAITED, killed); 184#ifndef CONFIG_NET_NS
182 185 NET_ADD_STATS_BH(&init_net, LINUX_MIB_TIMEWAITED, killed);
186#endif
183 return ret; 187 return ret;
184} 188}
185 189
@@ -372,6 +376,9 @@ void inet_twdr_twcal_tick(unsigned long data)
372 &twdr->twcal_row[slot]) { 376 &twdr->twcal_row[slot]) {
373 __inet_twsk_del_dead_node(tw); 377 __inet_twsk_del_dead_node(tw);
374 __inet_twsk_kill(tw, twdr->hashinfo); 378 __inet_twsk_kill(tw, twdr->hashinfo);
379#ifdef CONFIG_NET_NS
380 NET_INC_STATS_BH(twsk_net(tw), LINUX_MIB_TIMEWAITKILLED);
381#endif
375 inet_twsk_put(tw); 382 inet_twsk_put(tw);
376 killed++; 383 killed++;
377 } 384 }
@@ -395,7 +402,9 @@ void inet_twdr_twcal_tick(unsigned long data)
395out: 402out:
396 if ((twdr->tw_count -= killed) == 0) 403 if ((twdr->tw_count -= killed) == 0)
397 del_timer(&twdr->tw_timer); 404 del_timer(&twdr->tw_timer);
398 NET_ADD_STATS_BH(LINUX_MIB_TIMEWAITKILLED, killed); 405#ifndef CONFIG_NET_NS
406 NET_ADD_STATS_BH(&init_net, LINUX_MIB_TIMEWAITKILLED, killed);
407#endif
399 spin_unlock(&twdr->death_lock); 408 spin_unlock(&twdr->death_lock);
400} 409}
401 410