netdev
[Top] [All Lists]

[PATCH 2/3] NET: Use proc_net_fops_create() and proc_net_remove() in net

To: davem@xxxxxxxxxx
Subject: [PATCH 2/3] NET: Use proc_net_fops_create() and proc_net_remove() in net/ipv4
From: YOSHIFUJI Hideaki / 吉藤英明 <yoshfuji@xxxxxxxxxxxxxx>
Date: Mon, 08 Sep 2003 03:41:05 +0900 (JST)
Cc: netdev@xxxxxxxxxxx
Organization: USAGI Project
Sender: netdev-bounce@xxxxxxxxxxx
[2/3] Use proc_net_fops_create() and proc_net_remove() in net/ipv4.

Index: linux-2.6/net/ipv4/arp.c
===================================================================
RCS file: /home/cvs/linux-2.5/net/ipv4/arp.c,v
retrieving revision 1.27
diff -u -r1.27 arp.c
--- linux-2.6/net/ipv4/arp.c    20 Aug 2003 04:27:26 -0000      1.27
+++ linux-2.6/net/ipv4/arp.c    7 Sep 2003 16:51:04 -0000
@@ -1416,14 +1416,9 @@
 
 static int __init arp_proc_init(void)
 {
-       int rc = 0;
-       struct proc_dir_entry *p = create_proc_entry("arp", S_IRUGO, proc_net);
-
-        if (p)
-               p->proc_fops = &arp_seq_fops;
-       else
-               rc = -ENOMEM;
-       return rc;
+       if (!proc_net_fops_create("arp", S_IRUGO, &arp_seq_fops))
+               return -ENOMEM;
+       return 0;
 }
 
 #else /* CONFIG_PROC_FS */
Index: linux-2.6/net/ipv4/fib_hash.c
===================================================================
RCS file: /home/cvs/linux-2.5/net/ipv4/fib_hash.c,v
retrieving revision 1.16
diff -u -r1.16 fib_hash.c
--- linux-2.6/net/ipv4/fib_hash.c       26 May 2003 05:17:28 -0000      1.16
+++ linux-2.6/net/ipv4/fib_hash.c       7 Sep 2003 16:51:04 -0000
@@ -1096,19 +1096,13 @@
 
 int __init fib_proc_init(void)
 {
-       struct proc_dir_entry *p;
-       int rc = 0;
-
-       p = create_proc_entry("route", S_IRUGO, proc_net);
-       if (p)
-               p->proc_fops = &fib_seq_fops;
-       else
-               rc = -ENOMEM;
-       return rc;
+       if (!proc_net_fops_create("route", S_IRUGO, &fib_seq_fops))
+               return -ENOMEM;
+       return 0;
 }
 
 void __init fib_proc_exit(void)
 {
-       remove_proc_entry("route", proc_net);
+       proc_net_remove("route");
 }
 #endif /* CONFIG_PROC_FS */
Index: linux-2.6/net/ipv4/igmp.c
===================================================================
RCS file: /home/cvs/linux-2.5/net/ipv4/igmp.c,v
retrieving revision 1.34
diff -u -r1.34 igmp.c
--- linux-2.6/net/ipv4/igmp.c   1 Sep 2003 05:52:50 -0000       1.34
+++ linux-2.6/net/ipv4/igmp.c   7 Sep 2003 16:51:04 -0000
@@ -2430,15 +2430,8 @@
 
 int __init igmp_mc_proc_init(void)
 {
-       struct proc_dir_entry *p;
-
-       p = create_proc_entry("igmp", S_IRUGO, proc_net);
-       if (p)
-               p->proc_fops = &igmp_mc_seq_fops;
-
-       p = create_proc_entry("mcfilter", S_IRUGO, proc_net);
-       if (p)
-               p->proc_fops = &igmp_mcf_seq_fops;
+       proc_net_fops_create("igmp", S_IRUGO, &igmp_mc_seq_fops);
+       proc_net_fops_create("mcfilter", S_IRUGO, &igmp_mcf_seq_fops);
        return 0;
 }
 #endif
Index: linux-2.6/net/ipv4/proc.c
===================================================================
RCS file: /home/cvs/linux-2.5/net/ipv4/proc.c,v
retrieving revision 1.14
diff -u -r1.14 proc.c
--- linux-2.6/net/ipv4/proc.c   22 May 2003 08:13:13 -0000      1.14
+++ linux-2.6/net/ipv4/proc.c   7 Sep 2003 16:51:04 -0000
@@ -238,28 +238,21 @@
 int __init ip_misc_proc_init(void)
 {
        int rc = 0;
-       struct proc_dir_entry *p;
 
-       p = create_proc_entry("netstat", S_IRUGO, proc_net);
-       if (!p)
+       if (!proc_net_fops_create("netstat", S_IRUGO, &netstat_seq_fops))
                goto out_netstat;
-       p->proc_fops = &netstat_seq_fops;
 
-       p = create_proc_entry("snmp", S_IRUGO, proc_net);
-       if (!p)
+       if (!proc_net_fops_create("snmp", S_IRUGO, &snmp_seq_fops))
                goto out_snmp;
-       p->proc_fops = &snmp_seq_fops;
 
-       p = create_proc_entry("sockstat", S_IRUGO, proc_net);
-       if (!p)
+       if (!proc_net_fops_create("sockstat", S_IRUGO, &sockstat_seq_fops))
                goto out_sockstat;
-       p->proc_fops = &sockstat_seq_fops;
 out:
        return rc;
 out_sockstat:
-       remove_proc_entry("snmp", proc_net);
+       proc_net_remove("snmp");
 out_snmp:
-       remove_proc_entry("netstat", proc_net);
+       proc_net_remove("netstat");
 out_netstat:
        rc = -ENOMEM;
        goto out;
Index: linux-2.6/net/ipv4/raw.c
===================================================================
RCS file: /home/cvs/linux-2.5/net/ipv4/raw.c,v
retrieving revision 1.35
diff -u -r1.35 raw.c
--- linux-2.6/net/ipv4/raw.c    11 Jul 2003 04:06:16 -0000      1.35
+++ linux-2.6/net/ipv4/raw.c    7 Sep 2003 16:51:04 -0000
@@ -831,19 +831,13 @@
 
 int __init raw_proc_init(void)
 {
-       struct proc_dir_entry *p;
-       int rc = 0;
-
-       p = create_proc_entry("raw", S_IRUGO, proc_net);
-       if (p)
-               p->proc_fops = &raw_seq_fops;
-       else
-               rc = -ENOMEM;
-       return rc;
+       if (!proc_net_fops_create("raw", S_IRUGO, &raw_seq_fops))
+               return -ENOMEM;
+       return 0;
 }
 
 void __init raw_proc_exit(void)
 {
-       remove_proc_entry("raw", proc_net);
+       proc_net_remove("raw");
 }
 #endif /* CONFIG_PROC_FS */
Index: linux-2.6/net/ipv4/tcp_ipv4.c
===================================================================
RCS file: /home/cvs/linux-2.5/net/ipv4/tcp_ipv4.c,v
retrieving revision 1.56
diff -u -r1.56 tcp_ipv4.c
--- linux-2.6/net/ipv4/tcp_ipv4.c       18 Aug 2003 07:06:49 -0000      1.56
+++ linux-2.6/net/ipv4/tcp_ipv4.c       7 Sep 2003 16:51:05 -0000
@@ -2413,11 +2413,15 @@
 {
        struct tcp_seq_afinfo *afinfo = PDE(inode)->data;
        struct seq_file *seq;
-       int rc = -ENOMEM;
-       struct tcp_iter_state *s = kmalloc(sizeof(*s), GFP_KERNEL);
+       struct tcp_iter_state *s;
+       int rc;
 
+       if (unlikely(afinfo == NULL))
+               return -EINVAL;
+
+       s = kmalloc(sizeof(*s), GFP_KERNEL);
        if (!s)
-               goto out;
+               return -ENOMEM;
        memset(s, 0, sizeof(*s));
        s->family               = afinfo->family;
        s->seq_ops.start        = tcp_seq_start;
@@ -2450,11 +2454,10 @@
        afinfo->seq_fops->llseek        = seq_lseek;
        afinfo->seq_fops->release       = seq_release_private;
        
-       p = create_proc_entry(afinfo->name, S_IRUGO, proc_net);
-       if (p) {
+       p = proc_net_fops_create(afinfo->name, S_IRUGO, afinfo->seq_fops);
+       if (p)
                p->data = afinfo;
-               p->proc_fops = afinfo->seq_fops;
-       } else
+       else
                rc = -ENOMEM;
        return rc;
 }
@@ -2463,7 +2466,7 @@
 {
        if (!afinfo)
                return;
-       remove_proc_entry(afinfo->name, proc_net);
+       proc_net_remove(afinfo->name);
        memset(afinfo->seq_fops, 0, sizeof(*afinfo->seq_fops)); 
 }
 
Index: linux-2.6/net/ipv4/udp.c
===================================================================
RCS file: /home/cvs/linux-2.5/net/ipv4/udp.c,v
retrieving revision 1.39
diff -u -r1.39 udp.c
--- linux-2.6/net/ipv4/udp.c    4 Sep 2003 15:47:07 -0000       1.39
+++ linux-2.6/net/ipv4/udp.c    7 Sep 2003 16:51:05 -0000
@@ -1460,11 +1460,10 @@
        afinfo->seq_fops->llseek        = seq_lseek;
        afinfo->seq_fops->release       = seq_release_private;
 
-       p = create_proc_entry(afinfo->name, S_IRUGO, proc_net);
-       if (p) {
+       p = proc_net_fops_create(afinfo->name, S_IRUGO, afinfo->seq_fops);
+       if (p)
                p->data = afinfo;
-               p->proc_fops = afinfo->seq_fops;
-       } else
+       else
                rc = -ENOMEM;
        return rc;
 }
@@ -1473,7 +1472,7 @@
 {
        if (!afinfo)
                return;
-       remove_proc_entry(afinfo->name, proc_net);
+       proc_net_remove(afinfo->name);
        memset(afinfo->seq_fops, 0, sizeof(*afinfo->seq_fops));
 }
 

-- 
Hideaki YOSHIFUJI @ USAGI Project <yoshfuji@xxxxxxxxxxxxxx>
GPG FP: 9022 65EB 1ECF 3AD1 0BDF  80D8 4807 F894 E062 0EEA

<Prev in Thread] Current Thread [Next in Thread>