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

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

index 23216ed013256abae7227d07613a35e2e143ad93..859e75daff8e44a410643c4aeda006954f06c6ba 100644 (file)
@@ -1203,7 +1203,6 @@ static int ovl_copy_up_one(struct dentry *parent, struct dentry *dentry,
 static int ovl_copy_up_flags(struct dentry *dentry, int flags)
 {
        int err = 0;
-       const struct cred *old_cred;
        bool disconnected = (dentry->d_flags & DCACHE_DISCONNECTED);
 
        /*
@@ -1223,7 +1222,6 @@ static int ovl_copy_up_flags(struct dentry *dentry, int flags)
        if (err)
                return err;
 
-       old_cred = ovl_override_creds(dentry->d_sb);
        while (!err) {
                struct dentry *next;
                struct dentry *parent = NULL;
@@ -1243,12 +1241,12 @@ static int ovl_copy_up_flags(struct dentry *dentry, int flags)
                        next = parent;
                }
 
-               err = ovl_copy_up_one(parent, next, flags);
+               with_ovl_creds(dentry->d_sb)
+                       err = ovl_copy_up_one(parent, next, flags);
 
                dput(parent);
                dput(next);
        }
-       ovl_revert_creds(old_cred);
 
        return err;
 }