]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ovl: port ovl_lookup() to cred guard
authorChristian Brauner <brauner@kernel.org>
Mon, 17 Nov 2025 09:34:09 +0000 (10:34 +0100)
committerChristian Brauner <brauner@kernel.org>
Wed, 19 Nov 2025 20:58:25 +0000 (21:58 +0100)
Use the scoped ovl cred guard.

Link: https://patch.msgid.link/20251117-work-ovl-cred-guard-v4-38-b31603935724@kernel.org
Reviewed-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/overlayfs/namei.c

index 5bed42c079f0c0c2fb44de9e10a43ea8d1f75ec3..61c2dbd49b6fe9baab85c2a9634bc687d540a369 100644 (file)
@@ -1376,7 +1376,6 @@ static int ovl_lookup_layers(struct ovl_lookup_ctx *ctx, struct ovl_lookup_data
 struct dentry *ovl_lookup(struct inode *dir, struct dentry *dentry,
                          unsigned int flags)
 {
-       const struct cred *old_cred;
        struct ovl_fs *ofs = OVL_FS(dentry->d_sb);
        struct ovl_entry *poe = OVL_E(dentry->d_parent);
        bool check_redirect = (ovl_redirect_follow(ofs) || ofs->numdatalayer);
@@ -1394,11 +1393,9 @@ struct dentry *ovl_lookup(struct inode *dir, struct dentry *dentry,
        if (dentry->d_name.len > ofs->namelen)
                return ERR_PTR(-ENAMETOOLONG);
 
-       old_cred = ovl_override_creds(dentry->d_sb);
-
-       err = ovl_lookup_layers(&ctx, &d);
+       with_ovl_creds(dentry->d_sb)
+               err = ovl_lookup_layers(&ctx, &d);
 
-       ovl_revert_creds(old_cred);
        if (ctx.origin_path) {
                dput(ctx.origin_path->dentry);
                kfree(ctx.origin_path);