@@ -619,42 +619,44 @@ struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de)
619
619
{
620
620
struct inode * inode = new_inode (sb );
621
621
622
- if (inode ) {
623
- inode -> i_ino = de -> low_ino ;
624
- inode -> i_mtime = inode -> i_atime = inode -> i_ctime = current_time (inode );
625
- PROC_I (inode )-> pde = de ;
626
-
627
- if (is_empty_pde (de )) {
628
- make_empty_dir_inode (inode );
629
- return inode ;
630
- }
631
- if (de -> mode ) {
632
- inode -> i_mode = de -> mode ;
633
- inode -> i_uid = de -> uid ;
634
- inode -> i_gid = de -> gid ;
635
- }
636
- if (de -> size )
637
- inode -> i_size = de -> size ;
638
- if (de -> nlink )
639
- set_nlink (inode , de -> nlink );
640
-
641
- if (S_ISREG (inode -> i_mode )) {
642
- inode -> i_op = de -> proc_iops ;
643
- inode -> i_fop = & proc_reg_file_ops ;
622
+ if (!inode ) {
623
+ pde_put (de );
624
+ return NULL ;
625
+ }
626
+
627
+ inode -> i_ino = de -> low_ino ;
628
+ inode -> i_mtime = inode -> i_atime = inode -> i_ctime = current_time (inode );
629
+ PROC_I (inode )-> pde = de ;
630
+ if (is_empty_pde (de )) {
631
+ make_empty_dir_inode (inode );
632
+ return inode ;
633
+ }
634
+
635
+ if (de -> mode ) {
636
+ inode -> i_mode = de -> mode ;
637
+ inode -> i_uid = de -> uid ;
638
+ inode -> i_gid = de -> gid ;
639
+ }
640
+ if (de -> size )
641
+ inode -> i_size = de -> size ;
642
+ if (de -> nlink )
643
+ set_nlink (inode , de -> nlink );
644
+
645
+ if (S_ISREG (inode -> i_mode )) {
646
+ inode -> i_op = de -> proc_iops ;
647
+ inode -> i_fop = & proc_reg_file_ops ;
644
648
#ifdef CONFIG_COMPAT
645
- if (!de -> proc_ops -> proc_compat_ioctl ) {
646
- inode -> i_fop = & proc_reg_file_ops_no_compat ;
647
- }
649
+ if (!de -> proc_ops -> proc_compat_ioctl )
650
+ inode -> i_fop = & proc_reg_file_ops_no_compat ;
648
651
#endif
649
- } else if (S_ISDIR (inode -> i_mode )) {
650
- inode -> i_op = de -> proc_iops ;
651
- inode -> i_fop = de -> proc_dir_ops ;
652
- } else if (S_ISLNK (inode -> i_mode )) {
653
- inode -> i_op = de -> proc_iops ;
654
- inode -> i_fop = NULL ;
655
- } else
656
- BUG ();
657
- } else
658
- pde_put (de );
652
+ } else if (S_ISDIR (inode -> i_mode )) {
653
+ inode -> i_op = de -> proc_iops ;
654
+ inode -> i_fop = de -> proc_dir_ops ;
655
+ } else if (S_ISLNK (inode -> i_mode )) {
656
+ inode -> i_op = de -> proc_iops ;
657
+ inode -> i_fop = NULL ;
658
+ } else {
659
+ BUG ();
660
+ }
659
661
return inode ;
660
662
}
0 commit comments