Message ID | 20201120231441.29911-13-ebiederm@xmission.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2,01/24] exec: Move unshare_files to fix posix file locking during exec | expand |
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" <ebiederm@xmission.com> Acked-by: Cyrill Gorcunov <gorcunov@gmail.com> Since I wrote this kcmp code in first place. Thanks Eric!
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; }
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" <ebiederm@xmission.com> --- kernel/kcmp.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-)