]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
nfs/localio: avoid pointless cred reference count bumps
authorChristian Brauner <brauner@kernel.org>
Mon, 25 Nov 2024 14:10:09 +0000 (15:10 +0100)
committerChristian Brauner <brauner@kernel.org>
Mon, 2 Dec 2024 10:25:11 +0000 (11:25 +0100)
filp->f_cred already holds a reference count that is stable during the
operation.

Link: https://lore.kernel.org/r/20241125-work-cred-v2-13-68b9d38bb5b2@kernel.org
Acked-by: Chuck Lever <chuck.lever@oracle.com>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Reviewed-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/nfs/localio.c

index 720a4a99bd8ab4314d93bf87074d03c54b98795e..4b8618cf114caf4c52794ae734ab9de769f12934 100644 (file)
@@ -374,7 +374,7 @@ static void nfs_local_call_read(struct work_struct *work)
        struct iov_iter iter;
        ssize_t status;
 
-       save_cred = override_creds(get_new_cred(filp->f_cred));
+       save_cred = override_creds(filp->f_cred);
 
        nfs_local_iter_init(&iter, iocb, READ);
 
@@ -384,7 +384,7 @@ static void nfs_local_call_read(struct work_struct *work)
        nfs_local_read_done(iocb, status);
        nfs_local_pgio_release(iocb);
 
-       put_cred(revert_creds(save_cred));
+       revert_creds(save_cred);
 }
 
 static int
@@ -545,7 +545,7 @@ static void nfs_local_call_write(struct work_struct *work)
        ssize_t status;
 
        current->flags |= PF_LOCAL_THROTTLE | PF_MEMALLOC_NOIO;
-       save_cred = override_creds(get_new_cred(filp->f_cred));
+       save_cred = override_creds(filp->f_cred);
 
        nfs_local_iter_init(&iter, iocb, WRITE);
 
@@ -558,7 +558,7 @@ static void nfs_local_call_write(struct work_struct *work)
        nfs_local_vfs_getattr(iocb);
        nfs_local_pgio_release(iocb);
 
-       put_cred(revert_creds(save_cred));
+       revert_creds(save_cred);
        current->flags = old_flags;
 }