X-Git-Url: http://git.monstr.eu/?a=blobdiff_plain;f=mm%2Fmigrate.c;h=846af96b84a5392c432944c6a110e727f1134e23;hb=73a6e474cb376;hp=7160c1556f797fa961b77065e47e57e628ebf3de;hpb=4da858c086433cd012c0bb16b5921f6fafe3f803;p=linux-2.6-microblaze.git diff --git a/mm/migrate.c b/mm/migrate.c index 7160c1556f79..846af96b84a5 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -797,11 +797,7 @@ recheck_buffers: if (rc != MIGRATEPAGE_SUCCESS) goto unlock_buffers; - ClearPagePrivate(page); - set_page_private(newpage, page_private(page)); - set_page_private(page, 0); - put_page(page); - get_page(newpage); + attach_page_private(newpage, detach_page_private(page)); bh = head; do { @@ -810,8 +806,6 @@ recheck_buffers: } while (bh != head); - SetPagePrivate(newpage); - if (mode != MIGRATE_SYNC_NO_COPY) migrate_page_copy(newpage, page); else @@ -1032,7 +1026,7 @@ static int __unmap_and_move(struct page *page, struct page *newpage, * to the LRU. Later, when the IO completes the pages are * marked uptodate and unlocked. However, the queueing * could be merging multiple pages for one bio (e.g. - * mpage_readpages). If an allocation happens for the + * mpage_readahead). If an allocation happens for the * second or third page, the process can end up locking * the same page twice and deadlocking. Rather than * trying to be clever about what pages can be locked,