saner proc_get_inode() calling conventions
[linux-3.10.git] / fs / proc / generic.c
index 7dfe548..2983dc5 100644 (file)
@@ -412,8 +412,7 @@ static const struct dentry_operations proc_dentry_operations =
 struct dentry *proc_lookup_de(struct proc_dir_entry *de, struct inode *dir,
                struct dentry *dentry)
 {
-       struct inode *inode = NULL;
-       int error = -ENOENT;
+       struct inode *inode;
 
        spin_lock(&proc_subdir_lock);
        for (de = de->subdir; de ; de = de->next) {
@@ -422,22 +421,16 @@ struct dentry *proc_lookup_de(struct proc_dir_entry *de, struct inode *dir,
                if (!memcmp(dentry->d_name.name, de->name, de->namelen)) {
                        pde_get(de);
                        spin_unlock(&proc_subdir_lock);
-                       error = -ENOMEM;
                        inode = proc_get_inode(dir->i_sb, de);
-                       goto out_unlock;
+                       if (!inode)
+                               return ERR_PTR(-ENOMEM);
+                       d_set_d_op(dentry, &proc_dentry_operations);
+                       d_add(dentry, inode);
+                       return NULL;
                }
        }
        spin_unlock(&proc_subdir_lock);
-out_unlock:
-
-       if (inode) {
-               d_set_d_op(dentry, &proc_dentry_operations);
-               d_add(dentry, inode);
-               return NULL;
-       }
-       if (de)
-               pde_put(de);
-       return ERR_PTR(error);
+       return ERR_PTR(-ENOENT);
 }
 
 struct dentry *proc_lookup(struct inode *dir, struct dentry *dentry,