diff options
Diffstat (limited to 'mm/memory.c')
-rw-r--r-- | mm/memory.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/mm/memory.c b/mm/memory.c index 4b5a282e1107..039fab699a1a 100644 --- a/mm/memory.c +++ b/mm/memory.c | |||
@@ -1326,9 +1326,9 @@ static void unmap_single_vma(struct mmu_gather *tlb, | |||
1326 | * safe to do nothing in this case. | 1326 | * safe to do nothing in this case. |
1327 | */ | 1327 | */ |
1328 | if (vma->vm_file) { | 1328 | if (vma->vm_file) { |
1329 | mutex_lock(&vma->vm_file->f_mapping->i_mmap_mutex); | 1329 | i_mmap_lock_write(vma->vm_file->f_mapping); |
1330 | __unmap_hugepage_range_final(tlb, vma, start, end, NULL); | 1330 | __unmap_hugepage_range_final(tlb, vma, start, end, NULL); |
1331 | mutex_unlock(&vma->vm_file->f_mapping->i_mmap_mutex); | 1331 | i_mmap_unlock_write(vma->vm_file->f_mapping); |
1332 | } | 1332 | } |
1333 | } else | 1333 | } else |
1334 | unmap_page_range(tlb, vma, start, end, details); | 1334 | unmap_page_range(tlb, vma, start, end, details); |
@@ -2377,12 +2377,12 @@ void unmap_mapping_range(struct address_space *mapping, | |||
2377 | details.last_index = ULONG_MAX; | 2377 | details.last_index = ULONG_MAX; |
2378 | 2378 | ||
2379 | 2379 | ||
2380 | mutex_lock(&mapping->i_mmap_mutex); | 2380 | i_mmap_lock_write(mapping); |
2381 | if (unlikely(!RB_EMPTY_ROOT(&mapping->i_mmap))) | 2381 | if (unlikely(!RB_EMPTY_ROOT(&mapping->i_mmap))) |
2382 | unmap_mapping_range_tree(&mapping->i_mmap, &details); | 2382 | unmap_mapping_range_tree(&mapping->i_mmap, &details); |
2383 | if (unlikely(!list_empty(&mapping->i_mmap_nonlinear))) | 2383 | if (unlikely(!list_empty(&mapping->i_mmap_nonlinear))) |
2384 | unmap_mapping_range_list(&mapping->i_mmap_nonlinear, &details); | 2384 | unmap_mapping_range_list(&mapping->i_mmap_nonlinear, &details); |
2385 | mutex_unlock(&mapping->i_mmap_mutex); | 2385 | i_mmap_unlock_write(mapping); |
2386 | } | 2386 | } |
2387 | EXPORT_SYMBOL(unmap_mapping_range); | 2387 | EXPORT_SYMBOL(unmap_mapping_range); |
2388 | 2388 | ||