]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ovl: clarify ovl_get_root() semantics
authorAmir Goldstein <amir73il@gmail.com>
Sat, 17 Jun 2023 08:00:24 +0000 (11:00 +0300)
committerAmir Goldstein <amir73il@gmail.com>
Mon, 19 Jun 2023 11:02:00 +0000 (14:02 +0300)
Change the semantics to take a reference on upperdentry instead
of transferrig the reference.

This is needed for upcoming port to new mount api.

Signed-off-by: Amir Goldstein <amir73il@gmail.com>
fs/overlayfs/super.c

index ee9adb413d0e3abc361078322f10e88edfcc2ef5..280f2aa2f35684ef24cef18ca5bb7b9952890099 100644 (file)
@@ -1922,6 +1922,8 @@ static struct dentry *ovl_get_root(struct super_block *sb,
        ovl_set_upperdata(d_inode(root));
        ovl_inode_init(d_inode(root), &oip, ino, fsid);
        ovl_dentry_init_flags(root, upperdentry, oe, DCACHE_OP_WEAK_REVALIDATE);
+       /* root keeps a reference of upperdentry */
+       dget(upperdentry);
 
        return root;
 }
@@ -2100,7 +2102,7 @@ static int ovl_fill_super(struct super_block *sb, void *data, int silent)
        if (!root_dentry)
                goto out_free_oe;
 
-       mntput(upperpath.mnt);
+       path_put(&upperpath);
        kfree(splitlower);
 
        sb->s_root = root_dentry;