Wrapfs: dentry_open() no longer does mntput/dput
authorErez Zadok <ezk@cs.sunysb.edu>
Wed, 5 Jun 2013 03:19:31 +0000 (23:19 -0400)
committerErez Zadok <ezk@cs.sunysb.edu>
Tue, 27 Dec 2016 03:53:07 +0000 (22:53 -0500)
We need to grab a reference on the path before dentry_open, and drop it
after.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
fs/wrapfs/file.c

index 2692eea1ae3b071f3106d36335789b84c0500e8d..5d790a3aba81b8d3f7786da33cafbf6cb1ef03bb 100644 (file)
@@ -185,6 +185,7 @@ static int wrapfs_open(struct inode *inode, struct file *file)
        /* open lower object and link wrapfs's file struct to lower's */
        wrapfs_get_lower_path(file->f_path.dentry, &lower_path);
        lower_file = dentry_open(&lower_path, file->f_flags, current_cred());
+       path_put(&lower_path);
        if (IS_ERR(lower_file)) {
                err = PTR_ERR(lower_file);
                lower_file = wrapfs_lower_file(file);