mm: fix potential anon_vma locking issue in mprotect()
authorMichel Lespinasse <walken@google.com>
Mon, 8 Oct 2012 23:30:01 +0000 (16:30 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 9 Oct 2012 07:22:28 +0000 (16:22 +0900)
commitca42b26ab285edc5ee3f9faa48379d258db53c35
tree4a9d68d4d730474dde75b1ffff106d7e3442aef1
parent227e4047488d3ee0173a914275a7fd207ad51e5b
mm: fix potential anon_vma locking issue in mprotect()

Fix an anon_vma locking issue in the following situation:

- vma has no anon_vma
- next has an anon_vma
- vma is being shrunk / next is being expanded, due to an mprotect call

We need to take next's anon_vma lock to avoid races with rmap users (such
as page migration) while next is being expanded.

Signed-off-by: Michel Lespinasse <walken@google.com>
Reviewed-by: Andrea Arcangeli <aarcange@redhat.com>
Acked-by: Hugh Dickins <hughd@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/mmap.c