From: Liam R. Howlett <Liam.Howlett@Oracle.com> Date: Tue, 16 Mar 2021 20:00:31 +0000 (-0400) Subject: swapfile rcu fix X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=refs%2Fheads%2Fmaple_spf;p=users%2Fjedix%2Flinux-maple.git swapfile rcu fix Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com> --- diff --git a/mm/swapfile.c b/mm/swapfile.c index 3992959c0872..5c2a2615e835 100644 --- a/mm/swapfile.c +++ b/mm/swapfile.c @@ -2105,6 +2105,7 @@ static int unuse_mm(struct mm_struct *mm, unsigned int type, MA_STATE(mas, &mm->mm_mt, 0, 0); mmap_read_lock(mm); + mas_lock(&mas); mas_for_each(&mas, vma, ULONG_MAX) { if (vma->anon_vma) { ret = unuse_vma(vma, type, frontswap, @@ -2112,8 +2113,13 @@ static int unuse_mm(struct mm_struct *mm, unsigned int type, if (ret) break; } + + mas_unlock(&mas); + mas_pause(&mas); cond_resched(); + mas_lock(&mas); } + mas_unlock(&mas); mmap_read_unlock(mm); return ret; }