diff options
-rw-r--r-- | mm/rmap.c | 3 |
1 files changed, 1 insertions, 2 deletions
@@ -1564,10 +1564,9 @@ void __put_anon_vma(struct anon_vma *anon_vma) | |||
1564 | { | 1564 | { |
1565 | struct anon_vma *root = anon_vma->root; | 1565 | struct anon_vma *root = anon_vma->root; |
1566 | 1566 | ||
1567 | anon_vma_free(anon_vma); | ||
1567 | if (root != anon_vma && atomic_dec_and_test(&root->refcount)) | 1568 | if (root != anon_vma && atomic_dec_and_test(&root->refcount)) |
1568 | anon_vma_free(root); | 1569 | anon_vma_free(root); |
1569 | |||
1570 | anon_vma_free(anon_vma); | ||
1571 | } | 1570 | } |
1572 | 1571 | ||
1573 | static struct anon_vma *rmap_walk_anon_lock(struct page *page, | 1572 | static struct anon_vma *rmap_walk_anon_lock(struct page *page, |