]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - mm/ksm.c
Merge tag 'libnvdimm-for-4.12' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdim...
[mirror_ubuntu-artful-kernel.git] / mm / ksm.c
index 19b4f2dea7a591793ff8e18b6eeeafdc5df1de30..d9fc0e4561283d9a351f6dd7c4cfb74ad26ab566 100644 (file)
--- a/mm/ksm.c
+++ b/mm/ksm.c
@@ -1933,11 +1933,10 @@ struct page *ksm_might_need_to_copy(struct page *page,
        return new_page;
 }
 
-int rmap_walk_ksm(struct page *page, struct rmap_walk_control *rwc)
+void rmap_walk_ksm(struct page *page, struct rmap_walk_control *rwc)
 {
        struct stable_node *stable_node;
        struct rmap_item *rmap_item;
-       int ret = SWAP_AGAIN;
        int search_new_forks = 0;
 
        VM_BUG_ON_PAGE(!PageKsm(page), page);
@@ -1950,7 +1949,7 @@ int rmap_walk_ksm(struct page *page, struct rmap_walk_control *rwc)
 
        stable_node = page_stable_node(page);
        if (!stable_node)
-               return ret;
+               return;
 again:
        hlist_for_each_entry(rmap_item, &stable_node->hlist, hlist) {
                struct anon_vma *anon_vma = rmap_item->anon_vma;
@@ -1978,23 +1977,20 @@ again:
                        if (rwc->invalid_vma && rwc->invalid_vma(vma, rwc->arg))
                                continue;
 
-                       ret = rwc->rmap_one(page, vma,
-                                       rmap_item->address, rwc->arg);
-                       if (ret != SWAP_AGAIN) {
+                       if (!rwc->rmap_one(page, vma,
+                                       rmap_item->address, rwc->arg)) {
                                anon_vma_unlock_read(anon_vma);
-                               goto out;
+                               return;
                        }
                        if (rwc->done && rwc->done(page)) {
                                anon_vma_unlock_read(anon_vma);
-                               goto out;
+                               return;
                        }
                }
                anon_vma_unlock_read(anon_vma);
        }
        if (!search_new_forks++)
                goto again;
-out:
-       return ret;
 }
 
 #ifdef CONFIG_MIGRATION