proc: remove a level of indentation in proc_get_inode
authorChristoph Hellwig <hch@lst.de>
Thu, 3 Sep 2020 14:22:29 +0000 (16:22 +0200)
committerAl Viro <viro@zeniv.linux.org.uk>
Fri, 4 Sep 2020 01:26:24 +0000 (21:26 -0400)
Just return early on inode allocation failure.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/proc/inode.c

index 28d6105..016b130 100644 (file)
@@ -619,42 +619,44 @@ struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de)
 {
        struct inode *inode = new_inode(sb);
 
-       if (inode) {
-               inode->i_ino = de->low_ino;
-               inode->i_mtime = inode->i_atime = inode->i_ctime = current_time(inode);
-               PROC_I(inode)->pde = de;
-
-               if (is_empty_pde(de)) {
-                       make_empty_dir_inode(inode);
-                       return inode;
-               }
-               if (de->mode) {
-                       inode->i_mode = de->mode;
-                       inode->i_uid = de->uid;
-                       inode->i_gid = de->gid;
-               }
-               if (de->size)
-                       inode->i_size = de->size;
-               if (de->nlink)
-                       set_nlink(inode, de->nlink);
-
-               if (S_ISREG(inode->i_mode)) {
-                       inode->i_op = de->proc_iops;
-                       inode->i_fop = &proc_reg_file_ops;
+       if (!inode) {
+               pde_put(de);
+               return NULL;
+       }
+
+       inode->i_ino = de->low_ino;
+       inode->i_mtime = inode->i_atime = inode->i_ctime = current_time(inode);
+       PROC_I(inode)->pde = de;
+       if (is_empty_pde(de)) {
+               make_empty_dir_inode(inode);
+               return inode;
+       }
+
+       if (de->mode) {
+               inode->i_mode = de->mode;
+               inode->i_uid = de->uid;
+               inode->i_gid = de->gid;
+       }
+       if (de->size)
+               inode->i_size = de->size;
+       if (de->nlink)
+               set_nlink(inode, de->nlink);
+
+       if (S_ISREG(inode->i_mode)) {
+               inode->i_op = de->proc_iops;
+               inode->i_fop = &proc_reg_file_ops;
 #ifdef CONFIG_COMPAT
-                       if (!de->proc_ops->proc_compat_ioctl) {
-                               inode->i_fop = &proc_reg_file_ops_no_compat;
-                       }
+               if (!de->proc_ops->proc_compat_ioctl)
+                       inode->i_fop = &proc_reg_file_ops_no_compat;
 #endif
-               } else if (S_ISDIR(inode->i_mode)) {
-                       inode->i_op = de->proc_iops;
-                       inode->i_fop = de->proc_dir_ops;
-               } else if (S_ISLNK(inode->i_mode)) {
-                       inode->i_op = de->proc_iops;
-                       inode->i_fop = NULL;
-               } else
-                       BUG();
-       } else
-              pde_put(de);
+       } else if (S_ISDIR(inode->i_mode)) {
+               inode->i_op = de->proc_iops;
+               inode->i_fop = de->proc_dir_ops;
+       } else if (S_ISLNK(inode->i_mode)) {
+               inode->i_op = de->proc_iops;
+               inode->i_fop = NULL;
+       } else {
+               BUG();
+       }
        return inode;
 }