mm: unmap_mapping_range_tree() with i_mmap_rwsem shared
[linux-2.6-microblaze.git] / mm / memory.c
index f721735..be44d0b 100644 (file)
@@ -3388,11 +3388,11 @@ void unmap_mapping_folio(struct folio *folio)
        details.even_cows = false;
        details.single_folio = folio;
 
-       i_mmap_lock_write(mapping);
+       i_mmap_lock_read(mapping);
        if (unlikely(!RB_EMPTY_ROOT(&mapping->i_mmap.rb_root)))
                unmap_mapping_range_tree(&mapping->i_mmap, first_index,
                                         last_index, &details);
-       i_mmap_unlock_write(mapping);
+       i_mmap_unlock_read(mapping);
 }
 
 /**
@@ -3418,11 +3418,11 @@ void unmap_mapping_pages(struct address_space *mapping, pgoff_t start,
        if (last_index < first_index)
                last_index = ULONG_MAX;
 
-       i_mmap_lock_write(mapping);
+       i_mmap_lock_read(mapping);
        if (unlikely(!RB_EMPTY_ROOT(&mapping->i_mmap.rb_root)))
                unmap_mapping_range_tree(&mapping->i_mmap, first_index,
                                         last_index, &details);
-       i_mmap_unlock_write(mapping);
+       i_mmap_unlock_read(mapping);
 }
 EXPORT_SYMBOL_GPL(unmap_mapping_pages);