]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
open: avoid pointless cred reference count bump
authorChristian Brauner <brauner@kernel.org>
Mon, 25 Nov 2024 14:10:13 +0000 (15:10 +0100)
committerChristian Brauner <brauner@kernel.org>
Mon, 2 Dec 2024 10:25:12 +0000 (11:25 +0100)
The code already got rid of the extra reference count from the old
version of override_creds().

Link: https://lore.kernel.org/r/20241125-work-cred-v2-17-68b9d38bb5b2@kernel.org
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Reviewed-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/open.c

index 0a5cd8e74fb9bb4cc484d84096c6123b21acbf16..ffcfef67ac864c8ddaf9719cbc2762d5575597f3 100644 (file)
--- a/fs/open.c
+++ b/fs/open.c
@@ -402,7 +402,6 @@ static bool access_need_override_creds(int flags)
 
 static const struct cred *access_override_creds(void)
 {
-       const struct cred *old_cred;
        struct cred *override_cred;
 
        override_cred = prepare_creds();
@@ -447,13 +446,7 @@ static const struct cred *access_override_creds(void)
         * freeing.
         */
        override_cred->non_rcu = 1;
-
-       old_cred = override_creds(get_new_cred(override_cred));
-
-       /* override_cred() gets its own ref */
-       put_cred(override_cred);
-
-       return old_cred;
+       return override_creds(override_cred);
 }
 
 static long do_faccessat(int dfd, const char __user *filename, int mode, int flags)