do_dentry_open(): kill inode argument
authorAl Viro <viro@zeniv.linux.org.uk>
Sat, 20 Jan 2024 11:28:52 +0000 (06:28 -0500)
committerAl Viro <viro@zeniv.linux.org.uk>
Mon, 15 Apr 2024 20:03:25 +0000 (16:03 -0400)
should've been done as soon as overlayfs stopped messing with fake
paths...

Reviewed-by: Christian Brauner <brauner@kernel.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/open.c

index ec287ac67e7ff36028539a2f79bee4e482a32afb..89cafb572061189f18ad7e7c375309ea7121b426 100644 (file)
--- a/fs/open.c
+++ b/fs/open.c
@@ -902,10 +902,10 @@ cleanup_inode:
 }
 
 static int do_dentry_open(struct file *f,
-                         struct inode *inode,
                          int (*open)(struct inode *, struct file *))
 {
        static const struct file_operations empty_fops = {};
+       struct inode *inode = f->f_path.dentry->d_inode;
        int error;
 
        path_get(&f->f_path);
@@ -1047,7 +1047,7 @@ int finish_open(struct file *file, struct dentry *dentry,
        BUG_ON(file->f_mode & FMODE_OPENED); /* once it's opened, it's opened */
 
        file->f_path.dentry = dentry;
-       return do_dentry_open(file, d_backing_inode(dentry), open);
+       return do_dentry_open(file, open);
 }
 EXPORT_SYMBOL(finish_open);
 
@@ -1086,7 +1086,7 @@ EXPORT_SYMBOL(file_path);
 int vfs_open(const struct path *path, struct file *file)
 {
        file->f_path = *path;
-       return do_dentry_open(file, d_backing_inode(path->dentry), NULL);
+       return do_dentry_open(file, NULL);
 }
 
 struct file *dentry_open(const struct path *path, int flags,
@@ -1174,7 +1174,7 @@ struct file *kernel_file_open(const struct path *path, int flags,
                return f;
 
        f->f_path = *path;
-       error = do_dentry_open(f, d_inode(path->dentry), NULL);
+       error = do_dentry_open(f, NULL);
        if (error) {
                fput(f);
                f = ERR_PTR(error);