Re: [PATCH 2/4] mm/page_alloc: correct return value when failing at preparing

From: Chuck Lever III
Date: Tue Jul 13 2021 - 10:22:15 EST




> On Jul 13, 2021, at 9:56 AM, Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx> wrote:
>
> From: Yanfei Xu <yanfei.xu@xxxxxxxxxxxxx>
>
> If the array passed in is already partially populated, we should
> return "nr_populated" even failing at preparing arguments stage.
>
> Signed-off-by: Yanfei Xu <yanfei.xu@xxxxxxxxxxxxx>
> Signed-off-by: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx>
> Link: https://lore.kernel.org/r/20210709102855.55058-1-yanfei.xu@xxxxxxxxxxxxx
> ---
> mm/page_alloc.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index 6ef86f338151..803414ce9264 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -5255,7 +5255,7 @@ unsigned long __alloc_pages_bulk(gfp_t gfp, int preferred_nid,
> gfp &= gfp_allowed_mask;
> alloc_gfp = gfp;
> if (!prepare_alloc_pages(gfp, 0, preferred_nid, nodemask, &ac, &alloc_gfp, &alloc_flags))
> - return 0;
> + return nr_populated;

Can you restore the hunk in patch 3/4 that changes this "return nr_populated;"
to "goto out;" ?


> gfp = alloc_gfp;
>
> /* Find an allowed local zone that meets the low watermark. */
> --
> 2.26.2
>

--
Chuck Lever