]> Pileus Git - ~andy/linux/blobdiff - fs/anon_inodes.c
fs: Preserve error code in get_empty_filp(), part 2
[~andy/linux] / fs / anon_inodes.c
index 28d39fb84ae38bcce08c5d6e54c0655453f83413..a14eb0c1cd8cf5c98b9c4894e1cfd20c675e04b8 100644 (file)
@@ -131,7 +131,6 @@ struct file *anon_inode_getfile(const char *name,
        struct qstr this;
        struct path path;
        struct file *file;
-       int error;
 
        if (IS_ERR(anon_inode_inode))
                return ERR_PTR(-ENODEV);
@@ -143,7 +142,7 @@ struct file *anon_inode_getfile(const char *name,
         * Link the inode to a directory entry by creating a unique name
         * using the inode sequence number.
         */
-       error = -ENOMEM;
+       file = ERR_PTR(-ENOMEM);
        this.name = name;
        this.len = strlen(name);
        this.hash = 0;
@@ -160,9 +159,8 @@ struct file *anon_inode_getfile(const char *name,
 
        d_instantiate(path.dentry, anon_inode_inode);
 
-       error = -ENFILE;
        file = alloc_file(&path, OPEN_FMODE(flags), fops);
-       if (!file)
+       if (IS_ERR(file))
                goto err_dput;
        file->f_mapping = anon_inode_inode->i_mapping;
 
@@ -177,7 +175,7 @@ err_dput:
        path_put(&path);
 err_module:
        module_put(fops->owner);
-       return ERR_PTR(error);
+       return file;
 }
 EXPORT_SYMBOL_GPL(anon_inode_getfile);