|
@@ -1552,18 +1552,10 @@ static int page_not_mapped(struct page *page)
|
|
|
* Called from munlock code. Checks all of the VMAs mapping the page
|
|
|
* to make sure nobody else has this page mlocked. The page will be
|
|
|
* returned with PG_mlocked cleared if no other vmas have it mlocked.
|
|
|
- *
|
|
|
- * Return values are:
|
|
|
- *
|
|
|
- * SWAP_AGAIN - no vma is holding page mlocked, or,
|
|
|
- * SWAP_AGAIN - page mapped in mlocked vma -- couldn't acquire mmap sem
|
|
|
- * SWAP_FAIL - page cannot be located at present
|
|
|
- * SWAP_MLOCK - page is now mlocked.
|
|
|
*/
|
|
|
-int try_to_munlock(struct page *page)
|
|
|
-{
|
|
|
- int ret;
|
|
|
|
|
|
+void try_to_munlock(struct page *page)
|
|
|
+{
|
|
|
struct rmap_walk_control rwc = {
|
|
|
.rmap_one = try_to_unmap_one,
|
|
|
.arg = (void *)TTU_MUNLOCK,
|
|
@@ -1573,9 +1565,9 @@ int try_to_munlock(struct page *page)
|
|
|
};
|
|
|
|
|
|
VM_BUG_ON_PAGE(!PageLocked(page) || PageLRU(page), page);
|
|
|
+ VM_BUG_ON_PAGE(PageCompound(page) && PageDoubleMap(page), page);
|
|
|
|
|
|
- ret = rmap_walk(page, &rwc);
|
|
|
- return ret;
|
|
|
+ rmap_walk(page, &rwc);
|
|
|
}
|
|
|
|
|
|
void __put_anon_vma(struct anon_vma *anon_vma)
|