X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=mm%2Fmigrate.c;h=ba2453f9483dfe4b03b3df1c089607da36ebb60c;hb=699397499742d1245ea5d677a08fa265df666d2d;hp=3f1e0c2c942c90d59c565e92ee119479861f7c47;hpb=e6a1530d692d6a60cdf15dfbcfea07f5324d7b9f;p=~andy%2Flinux diff --git a/mm/migrate.c b/mm/migrate.c index 3f1e0c2c942..ba2453f9483 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -409,6 +409,7 @@ int migrate_page(struct address_space *mapping, } EXPORT_SYMBOL(migrate_page); +#ifdef CONFIG_BLOCK /* * Migration function for pages with buffers. This function can only be used * if the underlying filesystem guarantees that no other references to "page" @@ -466,6 +467,7 @@ int buffer_migrate_page(struct address_space *mapping, return 0; } EXPORT_SYMBOL(buffer_migrate_page); +#endif /* * Writeback a page to clean the dirty state @@ -525,7 +527,7 @@ static int fallback_migrate_page(struct address_space *mapping, * Buffers may be managed in a filesystem specific way. * We must have no buffers or drop them. */ - if (page_has_buffers(page) && + if (PagePrivate(page) && !try_to_release_page(page, GFP_KERNEL)) return -EAGAIN; @@ -741,7 +743,7 @@ static struct page *new_page_node(struct page *p, unsigned long private, *result = &pm->status; - return alloc_pages_node(pm->node, GFP_HIGHUSER, 0); + return alloc_pages_node(pm->node, GFP_HIGHUSER | GFP_THISNODE, 0); } /*