saner proc_get_inode() calling conventions
[deliverable/linux.git] / fs / proc / inode.c
index 98a7d2870bef8bb64dd15aa5f74f97d24c17c43e..70322e1a4f0f58dbc4f0831b9ef95af7d9d49d75 100644 (file)
@@ -445,12 +445,9 @@ static const struct file_operations proc_reg_file_ops_no_compat = {
 
 struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de)
 {
-       struct inode * inode;
+       struct inode *inode = iget_locked(sb, de->low_ino);
 
-       inode = iget_locked(sb, de->low_ino);
-       if (!inode)
-               return NULL;
-       if (inode->i_state & I_NEW) {
+       if (inode && (inode->i_state & I_NEW)) {
                inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME;
                PROC_I(inode)->pde = de;
 
@@ -482,7 +479,7 @@ struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de)
        } else
               pde_put(de);
        return inode;
-}                      
+}
 
 int proc_fill_super(struct super_block *s)
 {
@@ -499,7 +496,6 @@ int proc_fill_super(struct super_block *s)
        root_inode = proc_get_inode(s, &proc_root);
        if (!root_inode) {
                printk(KERN_ERR "proc_fill_super: get root inode failed\n");
-               pde_put(&proc_root);
                return -ENOMEM;
        }
 
This page took 0.037137 seconds and 5 git commands to generate.