@@ -511,33 +511,39 @@ struct proc_dir_entry *proc_create_mount_point(const char *name)
511511}
512512EXPORT_SYMBOL (proc_create_mount_point );
513513
514- struct proc_dir_entry * proc_create_data (const char * name , umode_t mode ,
515- struct proc_dir_entry * parent ,
516- const struct file_operations * proc_fops ,
517- void * data )
514+ struct proc_dir_entry * proc_create_reg (const char * name , umode_t mode ,
515+ struct proc_dir_entry * * parent , void * data )
518516{
519- struct proc_dir_entry * pde ;
517+ struct proc_dir_entry * p ;
518+
520519 if ((mode & S_IFMT ) == 0 )
521520 mode |= S_IFREG ;
522-
523- if (! S_ISREG ( mode )) {
524- WARN_ON ( 1 ); /* use proc_mkdir() */
521+ if (( mode & S_IALLUGO ) == 0 )
522+ mode |= S_IRUGO ;
523+ if ( WARN_ON_ONCE (! S_ISREG ( mode )))
525524 return NULL ;
525+
526+ p = __proc_create (parent , name , mode , 1 );
527+ if (p ) {
528+ p -> proc_iops = & proc_file_inode_operations ;
529+ p -> data = data ;
526530 }
531+ return p ;
532+ }
533+
534+ struct proc_dir_entry * proc_create_data (const char * name , umode_t mode ,
535+ struct proc_dir_entry * parent ,
536+ const struct file_operations * proc_fops , void * data )
537+ {
538+ struct proc_dir_entry * p ;
527539
528540 BUG_ON (proc_fops == NULL );
529541
530- if ((mode & S_IALLUGO ) == 0 )
531- mode |= S_IRUGO ;
532- pde = __proc_create (& parent , name , mode , 1 );
533- if (!pde )
534- goto out ;
535- pde -> proc_fops = proc_fops ;
536- pde -> data = data ;
537- pde -> proc_iops = & proc_file_inode_operations ;
538- return proc_register (parent , pde );
539- out :
540- return NULL ;
542+ p = proc_create_reg (name , mode , & parent , data );
543+ if (!p )
544+ return NULL ;
545+ p -> proc_fops = proc_fops ;
546+ return proc_register (parent , p );
541547}
542548EXPORT_SYMBOL (proc_create_data );
543549
0 commit comments