diff options
author | Michal Marek <mmarek@suse.cz> | 2010-08-20 13:53:08 +0200 |
---|---|---|
committer | Michal Marek <mmarek@suse.cz> | 2010-08-20 13:53:08 +0200 |
commit | e981b060767b3c4ac9393ad8d2558d648e35dfcb (patch) | |
tree | 9c05eaec3072be3645dda61d35085d152b9d5954 /mm/migrate.c | |
parent | 3c955b407a084810f57260d61548cc92c14bc627 (diff) | |
parent | da5cabf80e2433131bf0ed8993abc0f7ea618c73 (diff) | |
download | linux-e981b060767b3c4ac9393ad8d2558d648e35dfcb.tar.bz2 |
Merge commit 'v2.6.36-rc1' into kbuild/rc-fixes
Diffstat (limited to 'mm/migrate.c')
-rw-r--r-- | mm/migrate.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/mm/migrate.c b/mm/migrate.c index 4205b1d6049e..38e7cad782f4 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -639,7 +639,7 @@ static int unmap_and_move(new_page_t get_new_page, unsigned long private, * exist when the page is remapped later */ anon_vma = page_anon_vma(page); - atomic_inc(&anon_vma->external_refcount); + get_anon_vma(anon_vma); } } @@ -682,12 +682,8 @@ skip_unmap: rcu_unlock: /* Drop an anon_vma reference if we took one */ - if (anon_vma && atomic_dec_and_lock(&anon_vma->external_refcount, &anon_vma->lock)) { - int empty = list_empty(&anon_vma->head); - spin_unlock(&anon_vma->lock); - if (empty) - anon_vma_free(anon_vma); - } + if (anon_vma) + drop_anon_vma(anon_vma); if (rcu_locked) rcu_read_unlock(); |