diff options
author | Pavel Emelyanov <xemul@openvz.org> | 2008-07-18 07:02:08 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-07-18 07:02:08 -0400 |
commit | 57ef42d59d1c1d79be59fc3c6380ae14234e38c3 (patch) | |
tree | 4ccc2166f6967ac1fb582715f7d7d5bb5c9205fc /net/ipv4/af_inet.c | |
parent | 9b4661bd6e5437508e0920608f3213c23212cd1b (diff) |
mib: put tcp statistics on struct net
Proc temporary uses stats from init_net.
BTW, TCP_XXX_STATS are beautiful (w/o do { } while (0) facing) again :)
Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/af_inet.c')
-rw-r--r-- | net/ipv4/af_inet.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c index b4b77aa07953..c1a3e986f8b4 100644 --- a/net/ipv4/af_inet.c +++ b/net/ipv4/af_inet.c | |||
@@ -1342,11 +1342,20 @@ static struct net_protocol icmp_protocol = { | |||
1342 | 1342 | ||
1343 | static __net_init int ipv4_mib_init_net(struct net *net) | 1343 | static __net_init int ipv4_mib_init_net(struct net *net) |
1344 | { | 1344 | { |
1345 | if (snmp_mib_init((void **)net->mib.tcp_statistics, | ||
1346 | sizeof(struct tcp_mib)) < 0) | ||
1347 | goto err_tcp_mib; | ||
1348 | |||
1349 | tcp_mib_init(net); | ||
1345 | return 0; | 1350 | return 0; |
1351 | |||
1352 | err_tcp_mib: | ||
1353 | return -ENOMEM; | ||
1346 | } | 1354 | } |
1347 | 1355 | ||
1348 | static __net_exit void ipv4_mib_exit_net(struct net *net) | 1356 | static __net_exit void ipv4_mib_exit_net(struct net *net) |
1349 | { | 1357 | { |
1358 | snmp_mib_free((void **)net->mib.tcp_statistics); | ||
1350 | } | 1359 | } |
1351 | 1360 | ||
1352 | static __net_initdata struct pernet_operations ipv4_mib_ops = { | 1361 | static __net_initdata struct pernet_operations ipv4_mib_ops = { |
@@ -1368,9 +1377,6 @@ static int __init init_ipv4_mibs(void) | |||
1368 | if (snmp_mib_init((void **)icmpmsg_statistics, | 1377 | if (snmp_mib_init((void **)icmpmsg_statistics, |
1369 | sizeof(struct icmpmsg_mib)) < 0) | 1378 | sizeof(struct icmpmsg_mib)) < 0) |
1370 | goto err_icmpmsg_mib; | 1379 | goto err_icmpmsg_mib; |
1371 | if (snmp_mib_init((void **)tcp_statistics, | ||
1372 | sizeof(struct tcp_mib)) < 0) | ||
1373 | goto err_tcp_mib; | ||
1374 | if (snmp_mib_init((void **)udp_statistics, | 1380 | if (snmp_mib_init((void **)udp_statistics, |
1375 | sizeof(struct udp_mib)) < 0) | 1381 | sizeof(struct udp_mib)) < 0) |
1376 | goto err_udp_mib; | 1382 | goto err_udp_mib; |
@@ -1378,8 +1384,6 @@ static int __init init_ipv4_mibs(void) | |||
1378 | sizeof(struct udp_mib)) < 0) | 1384 | sizeof(struct udp_mib)) < 0) |
1379 | goto err_udplite_mib; | 1385 | goto err_udplite_mib; |
1380 | 1386 | ||
1381 | tcp_mib_init(&init_net); | ||
1382 | |||
1383 | if (register_pernet_subsys(&ipv4_mib_ops)) | 1387 | if (register_pernet_subsys(&ipv4_mib_ops)) |
1384 | goto err_net; | 1388 | goto err_net; |
1385 | 1389 | ||
@@ -1390,8 +1394,6 @@ err_net: | |||
1390 | err_udplite_mib: | 1394 | err_udplite_mib: |
1391 | snmp_mib_free((void **)udp_statistics); | 1395 | snmp_mib_free((void **)udp_statistics); |
1392 | err_udp_mib: | 1396 | err_udp_mib: |
1393 | snmp_mib_free((void **)tcp_statistics); | ||
1394 | err_tcp_mib: | ||
1395 | snmp_mib_free((void **)icmpmsg_statistics); | 1397 | snmp_mib_free((void **)icmpmsg_statistics); |
1396 | err_icmpmsg_mib: | 1398 | err_icmpmsg_mib: |
1397 | snmp_mib_free((void **)icmp_statistics); | 1399 | snmp_mib_free((void **)icmp_statistics); |