From: Al Viro <v...@zeniv.linux.org.uk>

Signed-off-by: Al Viro <v...@zeniv.linux.org.uk>
---
 drivers/misc/cxl/api.c | 21 ++++-----------------
 1 file changed, 4 insertions(+), 17 deletions(-)

diff --git a/drivers/misc/cxl/api.c b/drivers/misc/cxl/api.c
index 146a12fe6cb8..e0b9c00aecde 100644
--- a/drivers/misc/cxl/api.c
+++ b/drivers/misc/cxl/api.c
@@ -67,10 +67,8 @@ static struct file *cxl_getfile(const char *name,
                                const struct file_operations *fops,
                                void *priv, int flags)
 {
-       struct qstr this;
-       struct path path;
        struct file *file;
-       struct inode *inode = NULL;
+       struct inode *inode;
        int rc;
 
        /* strongly inspired by anon_inode_getfile() */
@@ -91,22 +89,11 @@ static struct file *cxl_getfile(const char *name,
                goto err_fs;
        }
 
-       file = ERR_PTR(-ENOMEM);
-       this.name = name;
-       this.len = strlen(name);
-       this.hash = 0;
-       path.dentry = d_alloc_pseudo(cxl_vfs_mount->mnt_sb, &this);
-       if (!path.dentry)
+       file = alloc_file_pseudo(inode, cxl_vfs_mount, name,
+                                OPEN_FMODE(flags), fops);
+       if (IS_ERR(file))
                goto err_inode;
 
-       path.mnt = mntget(cxl_vfs_mount);
-       d_instantiate(path.dentry, inode);
-
-       file = alloc_file(&path, OPEN_FMODE(flags) | FMODE_OPENED, fops);
-       if (IS_ERR(file)) {
-               path_put(&path);
-               goto err_fs;
-       }
        file->f_flags = flags & (O_ACCMODE | O_NONBLOCK);
        file->private_data = priv;
 
-- 
2.11.0

Reply via email to