--- mm/rmap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) Index: linux-2.6/mm/rmap.c =================================================================== --- linux-2.6.orig/mm/rmap.c 2008-03-27 18:04:47.923377754 -0700 +++ linux-2.6/mm/rmap.c 2008-03-27 18:05:42.263618138 -0700 @@ -117,8 +117,8 @@ void anon_vma_link(struct vm_area_struct struct anon_vma *anon_vma = vma->anon_vma; if (anon_vma) { - get_anon_vma(anon_vma); down_write(&anon_vma->sem); + get_anon_vma(anon_vma); list_add_tail(&vma->anon_vma_node, &anon_vma->head); up_write(&anon_vma->sem); } @@ -133,8 +133,8 @@ void anon_vma_unlink(struct vm_area_stru down_write(&anon_vma->sem); list_del(&vma->anon_vma_node); - up_write(&anon_vma->sem); put_anon_vma(anon_vma); + up_write(&anon_vma->sem); } static void anon_vma_ctor(struct kmem_cache *cachep, void *data)