diff options
Diffstat (limited to 'mm/mmap.c')
-rw-r--r-- | mm/mmap.c | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -2561,15 +2561,15 @@ static void vm_lock_anon_vma(struct mm_struct *mm, struct anon_vma *anon_vma) | |||
2561 | * The LSB of head.next can't change from under us | 2561 | * The LSB of head.next can't change from under us |
2562 | * because we hold the mm_all_locks_mutex. | 2562 | * because we hold the mm_all_locks_mutex. |
2563 | */ | 2563 | */ |
2564 | mutex_lock_nest_lock(&anon_vma->root->mutex, &mm->mmap_sem); | 2564 | down_write(&anon_vma->root->rwsem); |
2565 | /* | 2565 | /* |
2566 | * We can safely modify head.next after taking the | 2566 | * We can safely modify head.next after taking the |
2567 | * anon_vma->root->mutex. If some other vma in this mm shares | 2567 | * anon_vma->root->rwsem. If some other vma in this mm shares |
2568 | * the same anon_vma we won't take it again. | 2568 | * the same anon_vma we won't take it again. |
2569 | * | 2569 | * |
2570 | * No need of atomic instructions here, head.next | 2570 | * No need of atomic instructions here, head.next |
2571 | * can't change from under us thanks to the | 2571 | * can't change from under us thanks to the |
2572 | * anon_vma->root->mutex. | 2572 | * anon_vma->root->rwsem. |
2573 | */ | 2573 | */ |
2574 | if (__test_and_set_bit(0, (unsigned long *) | 2574 | if (__test_and_set_bit(0, (unsigned long *) |
2575 | &anon_vma->root->rb_root.rb_node)) | 2575 | &anon_vma->root->rb_root.rb_node)) |
@@ -2671,7 +2671,7 @@ static void vm_unlock_anon_vma(struct anon_vma *anon_vma) | |||
2671 | * | 2671 | * |
2672 | * No need of atomic instructions here, head.next | 2672 | * No need of atomic instructions here, head.next |
2673 | * can't change from under us until we release the | 2673 | * can't change from under us until we release the |
2674 | * anon_vma->root->mutex. | 2674 | * anon_vma->root->rwsem. |
2675 | */ | 2675 | */ |
2676 | if (!__test_and_clear_bit(0, (unsigned long *) | 2676 | if (!__test_and_clear_bit(0, (unsigned long *) |
2677 | &anon_vma->root->rb_root.rb_node)) | 2677 | &anon_vma->root->rb_root.rb_node)) |