Merge branch 'for-linus' of git://git.kernel.dk/linux-block
[linux-2.6-block.git] / mm / migrate.c
index f9dfb18a4ebac9f2f36d798ce6fa6b4ecd4d3c77..9baf41c877ffb98595aac0834b8aa43aedd6dc76 100644 (file)
@@ -332,7 +332,7 @@ int migrate_page_move_mapping(struct address_space *mapping,
                newpage->index = page->index;
                newpage->mapping = page->mapping;
                if (PageSwapBacked(page))
-                       SetPageSwapBacked(newpage);
+                       __SetPageSwapBacked(newpage);
 
                return MIGRATEPAGE_SUCCESS;
        }
@@ -378,7 +378,7 @@ int migrate_page_move_mapping(struct address_space *mapping,
        newpage->index = page->index;
        newpage->mapping = page->mapping;
        if (PageSwapBacked(page))
-               SetPageSwapBacked(newpage);
+               __SetPageSwapBacked(newpage);
 
        get_page(newpage);      /* add cache reference */
        if (PageSwapCache(page)) {
@@ -1171,6 +1171,7 @@ int migrate_pages(struct list_head *from, new_page_t get_new_page,
 
                        switch(rc) {
                        case -ENOMEM:
+                               nr_failed++;
                                goto out;
                        case -EAGAIN:
                                retry++;
@@ -1791,7 +1792,7 @@ int migrate_misplaced_transhuge_page(struct mm_struct *mm,
 
        /* Prepare a page as a migration target */
        __SetPageLocked(new_page);
-       SetPageSwapBacked(new_page);
+       __SetPageSwapBacked(new_page);
 
        /* anon mapping, we can simply copy page->mapping to the new page: */
        new_page->mapping = page->mapping;