[IRDA]: Use proc_create() to setup ->proc_fops first
authorWang Chen <wangchen@cn.fujitsu.com>
Fri, 29 Feb 2008 18:34:45 +0000 (10:34 -0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 29 Feb 2008 18:34:45 +0000 (10:34 -0800)
Use proc_create() to make sure that ->proc_fops be setup before gluing
PDE to main tree.

Signed-off-by: Wang Chen <wangchen@cn.fujitsu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/irda/ircomm/ircomm_core.c
net/irda/irlan/irlan_common.c
net/irda/irproc.c

index b825399fc16002dc98a3983c8475462286072afc..6eef1f2a75535503f5c1562fb196bd56a3626c05 100644 (file)
@@ -76,9 +76,11 @@ static int __init ircomm_init(void)
 
 #ifdef CONFIG_PROC_FS
        { struct proc_dir_entry *ent;
-       ent = create_proc_entry("ircomm", 0, proc_irda);
-       if (ent)
-               ent->proc_fops = &ircomm_proc_fops;
+       ent = proc_create("ircomm", 0, proc_irda, &ircomm_proc_fops);
+       if (!ent) {
+               printk(KERN_ERR "ircomm_init: can't create /proc entry!\n");
+               return -ENODEV;
+       }
        }
 #endif /* CONFIG_PROC_FS */
 
index a4b56e25a91705abb9899559f7fb6ae07a535b52..1eb4bbcb1c9e9ef59aee2d8474275fac3dc79b20 100644 (file)
@@ -128,13 +128,11 @@ static int __init irlan_init(void)
 
 #ifdef CONFIG_PROC_FS
        { struct proc_dir_entry *proc;
-       proc = create_proc_entry("irlan", 0, proc_irda);
+       proc = proc_create("irlan", 0, proc_irda, &irlan_fops);
        if (!proc) {
                printk(KERN_ERR "irlan_init: can't create /proc entry!\n");
                return -ENODEV;
        }
-
-       proc->proc_fops = &irlan_fops;
        }
 #endif /* CONFIG_PROC_FS */
 
index cae24fbda966f654d3817dcb38077b334ddd0b1a..88e80a312732a9ed18e7e1d511d79ac6f0f9d682 100644 (file)
@@ -72,11 +72,9 @@ void __init irda_proc_register(void)
                return;
        proc_irda->owner = THIS_MODULE;
 
-       for (i=0; i<ARRAY_SIZE(irda_dirs); i++) {
-               d = create_proc_entry(irda_dirs[i].name, 0, proc_irda);
-               if (d)
-                       d->proc_fops = irda_dirs[i].fops;
-       }
+       for (i = 0; i < ARRAY_SIZE(irda_dirs); i++)
+               d = proc_create(irda_dirs[i].name, 0, proc_irda,
+                               irda_dirs[i].fops);
 }
 
 /*