aboutsummaryrefslogtreecommitdiffstats
path: root/mm/rmap.c
diff options
context:
space:
mode:
authorPeter Zijlstra <a.p.zijlstra@chello.nl>2011-05-24 20:12:11 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2011-05-25 11:39:19 -0400
commit2b575eb64f7a9c701fb4bfdb12388ac547f6c2b6 (patch)
tree965739cbf570567a26f1512ae9a9fe35ce1afbed /mm/rmap.c
parent746b18d421da7f27e948e8af1ad82b6d0309324d (diff)
mm: convert anon_vma->lock to a mutex
Straightforward conversion of anon_vma->lock to a mutex. Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Acked-by: Hugh Dickins <hughd@google.com> Reviewed-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: David Miller <davem@davemloft.net> Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> Cc: Russell King <rmk@arm.linux.org.uk> Cc: Paul Mundt <lethal@linux-sh.org> Cc: Jeff Dike <jdike@addtoit.com> Cc: Richard Weinberger <richard@nod.at> Cc: Tony Luck <tony.luck@intel.com> Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: Mel Gorman <mel@csn.ul.ie> Cc: Nick Piggin <npiggin@kernel.dk> Cc: Namhyung Kim <namhyung@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/rmap.c')
-rw-r--r--mm/rmap.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/mm/rmap.c b/mm/rmap.c
index d271845d7d15..ce29d405d093 100644
--- a/mm/rmap.c
+++ b/mm/rmap.c
@@ -25,7 +25,7 @@
25 * mm->mmap_sem 25 * mm->mmap_sem
26 * page->flags PG_locked (lock_page) 26 * page->flags PG_locked (lock_page)
27 * mapping->i_mmap_mutex 27 * mapping->i_mmap_mutex
28 * anon_vma->lock 28 * anon_vma->mutex
29 * mm->page_table_lock or pte_lock 29 * mm->page_table_lock or pte_lock
30 * zone->lru_lock (in mark_page_accessed, isolate_lru_page) 30 * zone->lru_lock (in mark_page_accessed, isolate_lru_page)
31 * swap_lock (in swap_duplicate, swap_info_get) 31 * swap_lock (in swap_duplicate, swap_info_get)
@@ -40,7 +40,7 @@
40 * 40 *
41 * (code doesn't rely on that order so it could be switched around) 41 * (code doesn't rely on that order so it could be switched around)
42 * ->tasklist_lock 42 * ->tasklist_lock
43 * anon_vma->lock (memory_failure, collect_procs_anon) 43 * anon_vma->mutex (memory_failure, collect_procs_anon)
44 * pte map lock 44 * pte map lock
45 */ 45 */
46 46
@@ -307,7 +307,7 @@ static void anon_vma_ctor(void *data)
307{ 307{
308 struct anon_vma *anon_vma = data; 308 struct anon_vma *anon_vma = data;
309 309
310 spin_lock_init(&anon_vma->lock); 310 mutex_init(&anon_vma->mutex);
311 atomic_set(&anon_vma->refcount, 0); 311 atomic_set(&anon_vma->refcount, 0);
312 INIT_LIST_HEAD(&anon_vma->head); 312 INIT_LIST_HEAD(&anon_vma->head);
313} 313}
@@ -1143,7 +1143,7 @@ out_mlock:
1143 /* 1143 /*
1144 * We need mmap_sem locking, Otherwise VM_LOCKED check makes 1144 * We need mmap_sem locking, Otherwise VM_LOCKED check makes
1145 * unstable result and race. Plus, We can't wait here because 1145 * unstable result and race. Plus, We can't wait here because
1146 * we now hold anon_vma->lock or mapping->i_mmap_mutex. 1146 * we now hold anon_vma->mutex or mapping->i_mmap_mutex.
1147 * if trylock failed, the page remain in evictable lru and later 1147 * if trylock failed, the page remain in evictable lru and later
1148 * vmscan could retry to move the page to unevictable lru if the 1148 * vmscan could retry to move the page to unevictable lru if the
1149 * page is actually mlocked. 1149 * page is actually mlocked.