diff --git a/[refs] b/[refs] index f394d2b2842b..8a4926e56c4e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 2f9d3df8aa1cc3c6db5cfa0bad3f0745e04cc27d +refs/heads/master: 752dc185dacba1edcba425e67fc6df3c7793a5c3 diff --git a/trunk/mm/migrate.c b/trunk/mm/migrate.c index ab81d482ae6f..be26d5cbe56b 100644 --- a/trunk/mm/migrate.c +++ b/trunk/mm/migrate.c @@ -436,7 +436,10 @@ void migrate_page_copy(struct page *newpage, struct page *page) * is actually a signal that all of the page has become dirty. * Whereas only part of our page may be dirty. */ - __set_page_dirty_nobuffers(newpage); + if (PageSwapBacked(page)) + SetPageDirty(newpage); + else + __set_page_dirty_nobuffers(newpage); } mlock_migrate_page(newpage, page);