From: Ye Liu <[email protected]> Replace the manual rcu_read_lock()/rcu_read_unlock() pair combined with for_each_process() loop in mm/ksm.c with for_each_process_rculock(), which scopes 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]> Reviewed-by: SJ Park <[email protected]> --- Changes in v2: - Rename *_rcu to *_rculock mm/ksm.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/mm/ksm.c b/mm/ksm.c index 49d48d1e0998..69d30e80a090 100644 --- a/mm/ksm.c +++ b/mm/ksm.c @@ -3280,8 +3280,7 @@ void collect_procs_ksm(const struct folio *folio, const struct page *page, struct anon_vma *av = rmap_item->anon_vma; anon_vma_lock_read(av); - rcu_read_lock(); - for_each_process(tsk) { + for_each_process_rculock(tsk) { struct anon_vma_chain *vmac; const unsigned long addr = rmap_item->address & PAGE_MASK; const unsigned long index = rmap_item->linear_page_index; @@ -3298,7 +3297,6 @@ void collect_procs_ksm(const struct folio *folio, const struct page *page, } } } - rcu_read_unlock(); anon_vma_unlock_read(av); } } -- 2.25.1
