From: Ye Liu <[email protected]> Replace the manual rcu_read_lock()/rcu_read_unlock() pairs combined with for_each_process() and for_each_process_thread() loops in fs/ with the for_each_*_rculock() macros, which scope the RCU read lock to the loop body via scoped_guard(rcu).
No functional change. Signed-off-by: Ye Liu <[email protected]> Acked-by: Michal Hocko <[email protected]> --- Changes in v2: - Rename *_rcu to *_rculock fs/proc/base.c | 4 +--- fs/resctrl/rdtgroup.c | 8 ++------ 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/fs/proc/base.c b/fs/proc/base.c index 6a39de424f62..3de4f4557e4c 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c @@ -1160,8 +1160,7 @@ static int __set_oom_adj(struct file *file, int oom_adj, bool legacy) if (mm) { struct task_struct *p; - rcu_read_lock(); - for_each_process(p) { + for_each_process_rculock(p) { if (same_thread_group(task, p)) continue; @@ -1177,7 +1176,6 @@ static int __set_oom_adj(struct file *file, int oom_adj, bool legacy) } task_unlock(p); } - rcu_read_unlock(); mmdrop(mm); } err_unlock: diff --git a/fs/resctrl/rdtgroup.c b/fs/resctrl/rdtgroup.c index 5dcbb0a964e8..b14df8b23f1a 100644 --- a/fs/resctrl/rdtgroup.c +++ b/fs/resctrl/rdtgroup.c @@ -709,14 +709,12 @@ int rdtgroup_tasks_assigned(struct rdtgroup *r) lockdep_assert_held(&rdtgroup_mutex); - rcu_read_lock(); - for_each_process_thread(p, t) { + for_each_process_thread_rculock(p, t) { if (is_closid_match(t, r) || is_rmid_match(t, r)) { ret = 1; break; } } - rcu_read_unlock(); return ret; } @@ -826,15 +824,13 @@ static void show_rdt_tasks(struct rdtgroup *r, struct seq_file *s) struct task_struct *p, *t; pid_t pid; - rcu_read_lock(); - for_each_process_thread(p, t) { + for_each_process_thread_rculock(p, t) { if (is_closid_match(t, r) || is_rmid_match(t, r)) { pid = task_pid_vnr(t); if (pid) seq_printf(s, "%d\n", pid); } } - rcu_read_unlock(); } static int rdtgroup_tasks_show(struct kernfs_open_file *of, -- 2.25.1
