diff options
Diffstat (limited to 'mm/rmap.c')
-rw-r--r-- | mm/rmap.c | 20 |
1 files changed, 10 insertions, 10 deletions
@@ -134,7 +134,7 @@ int anon_vma_prepare(struct vm_area_struct *vma) | |||
134 | allocated = anon_vma; | 134 | allocated = anon_vma; |
135 | } | 135 | } |
136 | 136 | ||
137 | spin_lock(&anon_vma->lock); | 137 | anon_vma_lock(anon_vma); |
138 | /* page_table_lock to protect against threads */ | 138 | /* page_table_lock to protect against threads */ |
139 | spin_lock(&mm->page_table_lock); | 139 | spin_lock(&mm->page_table_lock); |
140 | if (likely(!vma->anon_vma)) { | 140 | if (likely(!vma->anon_vma)) { |
@@ -147,7 +147,7 @@ int anon_vma_prepare(struct vm_area_struct *vma) | |||
147 | avc = NULL; | 147 | avc = NULL; |
148 | } | 148 | } |
149 | spin_unlock(&mm->page_table_lock); | 149 | spin_unlock(&mm->page_table_lock); |
150 | spin_unlock(&anon_vma->lock); | 150 | anon_vma_unlock(anon_vma); |
151 | 151 | ||
152 | if (unlikely(allocated)) | 152 | if (unlikely(allocated)) |
153 | anon_vma_free(allocated); | 153 | anon_vma_free(allocated); |
@@ -170,9 +170,9 @@ static void anon_vma_chain_link(struct vm_area_struct *vma, | |||
170 | avc->anon_vma = anon_vma; | 170 | avc->anon_vma = anon_vma; |
171 | list_add(&avc->same_vma, &vma->anon_vma_chain); | 171 | list_add(&avc->same_vma, &vma->anon_vma_chain); |
172 | 172 | ||
173 | spin_lock(&anon_vma->lock); | 173 | anon_vma_lock(anon_vma); |
174 | list_add_tail(&avc->same_anon_vma, &anon_vma->head); | 174 | list_add_tail(&avc->same_anon_vma, &anon_vma->head); |
175 | spin_unlock(&anon_vma->lock); | 175 | anon_vma_unlock(anon_vma); |
176 | } | 176 | } |
177 | 177 | ||
178 | /* | 178 | /* |
@@ -246,12 +246,12 @@ static void anon_vma_unlink(struct anon_vma_chain *anon_vma_chain) | |||
246 | if (!anon_vma) | 246 | if (!anon_vma) |
247 | return; | 247 | return; |
248 | 248 | ||
249 | spin_lock(&anon_vma->lock); | 249 | anon_vma_lock(anon_vma); |
250 | list_del(&anon_vma_chain->same_anon_vma); | 250 | list_del(&anon_vma_chain->same_anon_vma); |
251 | 251 | ||
252 | /* We must garbage collect the anon_vma if it's empty */ | 252 | /* We must garbage collect the anon_vma if it's empty */ |
253 | empty = list_empty(&anon_vma->head) && !anonvma_external_refcount(anon_vma); | 253 | empty = list_empty(&anon_vma->head) && !anonvma_external_refcount(anon_vma); |
254 | spin_unlock(&anon_vma->lock); | 254 | anon_vma_unlock(anon_vma); |
255 | 255 | ||
256 | if (empty) | 256 | if (empty) |
257 | anon_vma_free(anon_vma); | 257 | anon_vma_free(anon_vma); |
@@ -302,7 +302,7 @@ struct anon_vma *page_lock_anon_vma(struct page *page) | |||
302 | goto out; | 302 | goto out; |
303 | 303 | ||
304 | anon_vma = (struct anon_vma *) (anon_mapping - PAGE_MAPPING_ANON); | 304 | anon_vma = (struct anon_vma *) (anon_mapping - PAGE_MAPPING_ANON); |
305 | spin_lock(&anon_vma->lock); | 305 | anon_vma_lock(anon_vma); |
306 | return anon_vma; | 306 | return anon_vma; |
307 | out: | 307 | out: |
308 | rcu_read_unlock(); | 308 | rcu_read_unlock(); |
@@ -311,7 +311,7 @@ out: | |||
311 | 311 | ||
312 | void page_unlock_anon_vma(struct anon_vma *anon_vma) | 312 | void page_unlock_anon_vma(struct anon_vma *anon_vma) |
313 | { | 313 | { |
314 | spin_unlock(&anon_vma->lock); | 314 | anon_vma_unlock(anon_vma); |
315 | rcu_read_unlock(); | 315 | rcu_read_unlock(); |
316 | } | 316 | } |
317 | 317 | ||
@@ -1389,7 +1389,7 @@ static int rmap_walk_anon(struct page *page, int (*rmap_one)(struct page *, | |||
1389 | anon_vma = page_anon_vma(page); | 1389 | anon_vma = page_anon_vma(page); |
1390 | if (!anon_vma) | 1390 | if (!anon_vma) |
1391 | return ret; | 1391 | return ret; |
1392 | spin_lock(&anon_vma->lock); | 1392 | anon_vma_lock(anon_vma); |
1393 | list_for_each_entry(avc, &anon_vma->head, same_anon_vma) { | 1393 | list_for_each_entry(avc, &anon_vma->head, same_anon_vma) { |
1394 | struct vm_area_struct *vma = avc->vma; | 1394 | struct vm_area_struct *vma = avc->vma; |
1395 | unsigned long address = vma_address(page, vma); | 1395 | unsigned long address = vma_address(page, vma); |
@@ -1399,7 +1399,7 @@ static int rmap_walk_anon(struct page *page, int (*rmap_one)(struct page *, | |||
1399 | if (ret != SWAP_AGAIN) | 1399 | if (ret != SWAP_AGAIN) |
1400 | break; | 1400 | break; |
1401 | } | 1401 | } |
1402 | spin_unlock(&anon_vma->lock); | 1402 | anon_vma_unlock(anon_vma); |
1403 | return ret; | 1403 | return ret; |
1404 | } | 1404 | } |
1405 | 1405 | ||