On Fri, Aug 07, 2015 at 06:16:42PM +0800, Wanpeng Li wrote:
> Hugetlbfs pages will get a refcount in get_any_page() or madvise_hwpoison() 
> if soft offline through madvise. The refcount which held by soft offline 
> path should be released if fail to isolate hugetlbfs pages. This patch fix 
> it by reducing a refcount for both isolate successfully and failure.
> 
> Cc: <[email protected]> # 3.9+
> Signed-off-by: Wanpeng Li <[email protected]> 

Acked-by: Naoya Horiguchi <[email protected]>

> ---
>  mm/memory-failure.c |   13 ++++++-------
>  1 files changed, 6 insertions(+), 7 deletions(-)
> 
> diff --git a/mm/memory-failure.c b/mm/memory-failure.c
> index 001f1ba..8077b1c 100644
> --- a/mm/memory-failure.c
> +++ b/mm/memory-failure.c
> @@ -1557,13 +1557,12 @@ static int soft_offline_huge_page(struct page *page, 
> int flags)
>       unlock_page(hpage);
>  
>       ret = isolate_huge_page(hpage, &pagelist);
> -     if (ret) {
> -             /*
> -              * get_any_page() and isolate_huge_page() takes a refcount each,
> -              * so need to drop one here.
> -              */
> -             put_page(hpage);
> -     } else {
> +     /*
> +      * get_any_page() and isolate_huge_page() takes a refcount each,
> +      * so need to drop one here.
> +      */
> +     put_page(hpage);
> +     if (!ret) {
>               pr_info("soft offline: %#lx hugepage failed to isolate\n", pfn);
>               return -EBUSY;
>       }
> -- 
> 1.7.1
> --
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to