Re: [PATCH 02/24] migrate: page could be locked by hwpoison, dontBUG()

From: Christoph Lameter
Date: Wed Dec 02 2009 - 09:50:43 EST


On Wed, 2 Dec 2009, Wu Fengguang wrote:

> mm/migrate.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> --- linux-mm.orig/mm/migrate.c 2009-11-02 10:18:45.000000000 +0800
> +++ linux-mm/mm/migrate.c 2009-11-02 10:26:16.000000000 +0800
> @@ -556,7 +556,7 @@ static int move_to_new_page(struct page
> * holding a reference to the new page at this point.
> */
> if (!trylock_page(newpage))
> - BUG();
> + return -EAGAIN; /* got by hwpoison */
>
> /* Prepare mapping for the new page.*/
> newpage->index = page->index;

The error handling code in umap_and_move() assumes that the page is
locked upon return from move_to_new_page() even if it failed.

If you return EAGAIN then it may try to unlock a page that is not
locked.


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/