From: Daniel Mack Date: Sat, 18 Apr 2015 12:04:36 +0200 Subject: [PATCH] kdbus: use rcu to access exe file in metadata Commit 90f31d0ea888 ("mm: rcu-protected get_mm_exe_file()") removed mm->mmap_sem from mm->exe_file read side. Follow that change in the kdbus metadata code. Signed-off-by: Daniel Mack Signed-off-by: David Herrmann --- ipc/kdbus/metadata.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/ipc/kdbus/metadata.c b/ipc/kdbus/metadata.c index 7949c8d3ed64..a85eac34a5c4 100644 --- a/ipc/kdbus/metadata.c +++ b/ipc/kdbus/metadata.c @@ -283,19 +283,21 @@ static void kdbus_meta_proc_collect_pid_comm(struct kdbus_meta_proc *mp) static void kdbus_meta_proc_collect_exe(struct kdbus_meta_proc *mp) { struct mm_struct *mm; + struct file *exe_file; mm = get_task_mm(current); if (!mm) return; - down_read(&mm->mmap_sem); - if (mm->exe_file) { - mp->exe_path = mm->exe_file->f_path; + rcu_read_lock(); + exe_file = rcu_dereference(mm->exe_file); + if (exe_file) { + mp->exe_path = exe_file->f_path; path_get(&mp->exe_path); get_fs_root(current->fs, &mp->root_path); mp->valid |= KDBUS_ATTACH_EXE; } - up_read(&mm->mmap_sem); + rcu_read_unlock(); mmput(mm); }