aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/udp.c
diff options
context:
space:
mode:
authorDaniel Lezcano <dlezcano@fr.ibm.com>2008-03-21 07:14:17 -0400
committerDavid S. Miller <davem@davemloft.net>2008-03-21 07:14:17 -0400
commit0c96d8c50bffb7f02690dd8a8cf1adb8e07e100f (patch)
tree9add3d8686b41aa3022b49d9cc57710865245e26 /net/ipv4/udp.c
parentf40c8174d3c21bf178283f3ef3aa8c7bf238fdec (diff)
[NETNS][IPV6] udp6 - make proc per namespace
The proc init/exit functions take a new network namespace parameter in order to register/unregister /proc/net/udp6 for a namespace. Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/udp.c')
-rw-r--r--net/ipv4/udp.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
index 049e92519616..a98c43c0a89c 100644
--- a/net/ipv4/udp.c
+++ b/net/ipv4/udp.c
@@ -1632,7 +1632,7 @@ static int udp_seq_release(struct inode *inode, struct file *file)
1632} 1632}
1633 1633
1634/* ------------------------------------------------------------------------ */ 1634/* ------------------------------------------------------------------------ */
1635int udp_proc_register(struct udp_seq_afinfo *afinfo) 1635int udp_proc_register(struct net *net, struct udp_seq_afinfo *afinfo)
1636{ 1636{
1637 struct proc_dir_entry *p; 1637 struct proc_dir_entry *p;
1638 int rc = 0; 1638 int rc = 0;
@@ -1645,7 +1645,7 @@ int udp_proc_register(struct udp_seq_afinfo *afinfo)
1645 afinfo->seq_fops->llseek = seq_lseek; 1645 afinfo->seq_fops->llseek = seq_lseek;
1646 afinfo->seq_fops->release = udp_seq_release; 1646 afinfo->seq_fops->release = udp_seq_release;
1647 1647
1648 p = proc_net_fops_create(&init_net, afinfo->name, S_IRUGO, afinfo->seq_fops); 1648 p = proc_net_fops_create(net, afinfo->name, S_IRUGO, afinfo->seq_fops);
1649 if (p) 1649 if (p)
1650 p->data = afinfo; 1650 p->data = afinfo;
1651 else 1651 else
@@ -1653,11 +1653,11 @@ int udp_proc_register(struct udp_seq_afinfo *afinfo)
1653 return rc; 1653 return rc;
1654} 1654}
1655 1655
1656void udp_proc_unregister(struct udp_seq_afinfo *afinfo) 1656void udp_proc_unregister(struct net *net, struct udp_seq_afinfo *afinfo)
1657{ 1657{
1658 if (!afinfo) 1658 if (!afinfo)
1659 return; 1659 return;
1660 proc_net_remove(&init_net, afinfo->name); 1660 proc_net_remove(net, afinfo->name);
1661 memset(afinfo->seq_fops, 0, sizeof(*afinfo->seq_fops)); 1661 memset(afinfo->seq_fops, 0, sizeof(*afinfo->seq_fops));
1662} 1662}
1663 1663
@@ -1709,12 +1709,12 @@ static struct udp_seq_afinfo udp4_seq_afinfo = {
1709 1709
1710int __init udp4_proc_init(void) 1710int __init udp4_proc_init(void)
1711{ 1711{
1712 return udp_proc_register(&udp4_seq_afinfo); 1712 return udp_proc_register(&init_net, &udp4_seq_afinfo);
1713} 1713}
1714 1714
1715void udp4_proc_exit(void) 1715void udp4_proc_exit(void)
1716{ 1716{
1717 udp_proc_unregister(&udp4_seq_afinfo); 1717 udp_proc_unregister(&init_net, &udp4_seq_afinfo);
1718} 1718}
1719#endif /* CONFIG_PROC_FS */ 1719#endif /* CONFIG_PROC_FS */
1720 1720