Would vmalloc be another good user of this API? 

> +     /* May set ALLOC_NOFRAGMENT, fragmentation will return 1 page. */
> +     if (!prepare_alloc_pages(gfp_mask, 0, preferred_nid, nodemask, &ac, 
> &alloc_mask, &alloc_flags))

This crazy long line is really hard to follow.

> +             return 0;
> +     gfp_mask = alloc_mask;
> +
> +     /* Find an allowed local zone that meets the high watermark. */
> +     for_each_zone_zonelist_nodemask(zone, z, ac.zonelist, 
> ac.highest_zoneidx, ac.nodemask) {

Same here.

> +             unsigned long mark;
> +
> +             if (cpusets_enabled() && (alloc_flags & ALLOC_CPUSET) &&
> +                 !__cpuset_zone_allowed(zone, gfp_mask)) {
> +                     continue;
> +             }

No need for the curly braces.

>       }
>  
> -     gfp_mask &= gfp_allowed_mask;
> -     alloc_mask = gfp_mask;

Is this change intentional?

Reply via email to