]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
kcmp: In get_file_raw_ptr use task_lookup_fd_rcu
authorEric W. Biederman <ebiederm@xmission.com>
Fri, 20 Nov 2020 23:14:30 +0000 (17:14 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 21 Jun 2024 12:52:48 +0000 (14:52 +0200)
[ Upstream commit ed77e80e14a3cd55c73848b9e8043020e717ce12 ]

Modify get_file_raw_ptr to use task_lookup_fd_rcu.  The helper
task_lookup_fd_rcu does the work of taking the task lock and verifying
that task->files != NULL and then calls files_lookup_fd_rcu.  So let
use the helper to make a simpler implementation of get_file_raw_ptr.

Acked-by: Cyrill Gorcunov <gorcunov@gmail.com>
Link: https://lkml.kernel.org/r/20201120231441.29911-13-ebiederm@xmission.com
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
kernel/kcmp.c

index 5b2435e030472ba3e0a00b8e77e25a656884c2bf..5353edfad8e11a646a9654d9868dd18e31cb630a 100644 (file)
@@ -61,16 +61,11 @@ static int kcmp_ptr(void *v1, void *v2, enum kcmp_type type)
 static struct file *
 get_file_raw_ptr(struct task_struct *task, unsigned int idx)
 {
-       struct file *file = NULL;
+       struct file *file;
 
-       task_lock(task);
        rcu_read_lock();
-
-       if (task->files)
-               file = files_lookup_fd_rcu(task->files, idx);
-
+       file = task_lookup_fd_rcu(task, idx);
        rcu_read_unlock();
-       task_unlock(task);
 
        return file;
 }