mm, hugetlb: grab a page_table_lock after page_cache_release
[linux-2.6-block.git] / mm / hugetlb.c
index f6347ec4fd0a37898361cd410c1488444b912947..5bf6468a886204345206a71b6d9ef5e2c805ae41 100644 (file)
@@ -2647,10 +2647,11 @@ retry_avoidcopy:
        }
        spin_unlock(&mm->page_table_lock);
        mmu_notifier_invalidate_range_end(mm, mmun_start, mmun_end);
-       /* Caller expects lock to be held */
-       spin_lock(&mm->page_table_lock);
        page_cache_release(new_page);
        page_cache_release(old_page);
+
+       /* Caller expects lock to be held */
+       spin_lock(&mm->page_table_lock);
        return 0;
 }