2020-11-20 23:23:16

by Eric W. Biederman

[permalink] [raw]
Subject: [PATCH v2 13/24] kcmp: In get_file_raw_ptr use task_lookup_fd_rcu

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.

Signed-off-by: "Eric W. Biederman" <[email protected]>
---
kernel/kcmp.c | 9 ++-------
1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/kernel/kcmp.c b/kernel/kcmp.c
index 990717c1aed3..36e58eb5a11d 100644
--- a/kernel/kcmp.c
+++ b/kernel/kcmp.c
@@ -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;
}
--
2.25.0


2020-11-23 21:08:57

by Cyrill Gorcunov

[permalink] [raw]
Subject: Re: [PATCH v2 13/24] kcmp: In get_file_raw_ptr use task_lookup_fd_rcu

On Fri, Nov 20, 2020 at 05:14:30PM -0600, Eric W. Biederman wrote:
> 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.
>
> Signed-off-by: "Eric W. Biederman" <[email protected]>
Acked-by: Cyrill Gorcunov <[email protected]>

Since I wrote this kcmp code in first place. Thanks Eric!