hugetlbfs: use i_mmap_rwsem for more pmd sharing synchronization
[linux-2.6-microblaze.git] / fs / hugetlbfs / inode.c
index aff8642..ce9d354 100644 (file)
@@ -450,7 +450,9 @@ static void remove_inode_hugepages(struct inode *inode, loff_t lstart,
                        if (unlikely(page_mapped(page))) {
                                BUG_ON(truncate_op);
 
+                               mutex_unlock(&hugetlb_fault_mutex_table[hash]);
                                i_mmap_lock_write(mapping);
+                               mutex_lock(&hugetlb_fault_mutex_table[hash]);
                                hugetlb_vmdelete_list(&mapping->i_mmap,
                                        index * pages_per_huge_page(h),
                                        (index + 1) * pages_per_huge_page(h));