]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
aio: avoid pointless cred reference count bump
authorChristian Brauner <brauner@kernel.org>
Mon, 25 Nov 2024 14:10:06 +0000 (15:10 +0100)
committerChristian Brauner <brauner@kernel.org>
Mon, 2 Dec 2024 10:25:10 +0000 (11:25 +0100)
iocb->fsync.creds already holds a reference count that is stable while
the operation is performed.

Link: https://lore.kernel.org/r/20241125-work-cred-v2-10-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/aio.c

index 5e57dcaed7f1ae1e4b38009b51a665954b31f5bd..50671640b5883f5d20f652e23c4ea3fe04c989f2 100644 (file)
--- a/fs/aio.c
+++ b/fs/aio.c
@@ -1639,10 +1639,10 @@ static int aio_write(struct kiocb *req, const struct iocb *iocb,
 static void aio_fsync_work(struct work_struct *work)
 {
        struct aio_kiocb *iocb = container_of(work, struct aio_kiocb, fsync.work);
-       const struct cred *old_cred = override_creds(get_new_cred(iocb->fsync.creds));
+       const struct cred *old_cred = override_creds(iocb->fsync.creds);
 
        iocb->ki_res.res = vfs_fsync(iocb->fsync.file, iocb->fsync.datasync);
-       put_cred(revert_creds(old_cred));
+       revert_creds(old_cred);
        put_cred(iocb->fsync.creds);
        iocb_put(iocb);
 }