: Use proc_create() to setup ->proc_fops first
Subsystems (3)
PATCH 2/15 : Use proc_create() to setup ->proc_fops first
Use proc_create() to make sure that ->proc_fops be setup before gluing PDE to main tree.
Signed-off-by Wang Chen <[email protected]>
--- net/atm/br2684.c | 4 ++-- net/atm/clip.c | 4 +--- net/atm/lec.c | 4 +--- net/atm/mpoa_proc.c | 3 +-- net/atm/proc.c | 8 ++++---- 5 files changed, 9 insertions(+), 14 deletions(-)
net/atm/br2684.c +2 -2
@@ -742,9 +742,9 @@ static int __init br2684_init(void) {#ifdef CONFIG_PROC_FS struct proc_dir_entry *p; -if ((p =create_proc_entry ("br2684" ,0 , atm_proc_root)) ==NULL ) + p =proc_create ("br2684" ,0 , atm_proc_root, &br2684_proc_ops); +if (p ==NULL )return -ENOMEM ; - p->proc_fops = &br2684_proc_ops;#endif register_atm_ioctl (&br2684_ioctl_ops);return 0 ;
net/atm/clip.c +1 -3
@@ -962,9 +962,7 @@ static int __init atm_clip_init(void) {struct proc_dir_entry *p; - p =create_proc_entry ("arp" ,S_IRUGO , atm_proc_root); -if (p) - p->proc_fops = &arp_seq_fops; + p =proc_create ("arp" ,S_IRUGO , atm_proc_root, &arp_seq_fops); }#endif
net/atm/lec.c +1 -3
@@ -1249,9 +1249,7 @@ static int __init lane_module_init(void)#ifdef CONFIG_PROC_FS struct proc_dir_entry *p; - p =create_proc_entry ("lec" ,S_IRUGO , atm_proc_root); -if (p) - p->proc_fops = &lec_seq_fops; + p =proc_create ("lec" ,S_IRUGO , atm_proc_root, &lec_seq_fops);#endif register_atm_ioctl (&lane_ioctl_ops);
net/atm/mpoa_proc.c +1 -2
@@ -276,12 +276,11 @@ int mpc_proc_init(void) {struct proc_dir_entry *p; - p =create_proc_entry (STAT_FILE_NAME ,0 , atm_proc_root); + p =proc_create (STAT_FILE_NAME ,0 , atm_proc_root, &mpc_file_operations);if (!p) {printk (KERN_ERR "Unable to initialize /proc/atm/%s\n" ,STAT_FILE_NAME );return -ENOMEM ; } - p->proc_fops = &mpc_file_operations; p->owner =THIS_MODULE ;return 0 ; }
net/atm/proc.c +4 -4
@@ -435,11 +435,11 @@ int atm_proc_dev_register(struct atm_dev *dev) goto err_out;sprintf (dev->proc_name,"%s:%d" ,dev->type, dev->number); - dev->proc_entry =create_proc_entry (dev->proc_name,0 , atm_proc_root); + dev->proc_entry =proc_create (dev->proc_name,0 , atm_proc_root, + &proc_atm_dev_ops);if (!dev->proc_entry) goto err_free_name; dev->proc_entry->data = dev; - dev->proc_entry->proc_fops = &proc_atm_dev_ops; dev->proc_entry->owner =THIS_MODULE ;return 0 ; err_free_name:
@@ -492,10 +492,10 @@ int __init atm_proc_init(void)for (e = atm_proc_ents; e->name; e++) {struct proc_dir_entry *dirent; - dirent =create_proc_entry (e->name,S_IRUGO , atm_proc_root); + dirent =proc_create (e->name,S_IRUGO , + atm_proc_root, e->proc_fops);if (!dirent) goto err_out_remove; - dirent->proc_fops = e->proc_fops; dirent->owner =THIS_MODULE ; e->dirent = dirent; }
Signature · 1 line
WCN
From: Wang Chen <[email protected]>
Date: Thu, 28 Feb 2008 18:55:23 +0800
Quoted 4 lines
Use
proc_create()to make sure that ->proc_fops be setup before gluing PDE to main tree.Signed-off-by Wang Chen <[email protected]>
Applied, thanks.
Some of those paths could definitely use some error handling.
David Miller said the following on 2008-2-29 5:56:
Quoted 6 lines
From: Wang Chen <[email protected]>
Date: Thu, 28 Feb 2008 18:55:23 +0800Quoted 3 lines
Use
proc_create()to make sure that ->proc_fops be setup before gluing PDE to main tree.
Quoted 7 lines
Quoted 1 line
Signed-off-by Wang Chen <[email protected]>Applied, thanks.
Some of those paths could definitely use some error handling.
Thanks Dave, I will make patch for error handling later.