> @@ -2561,17 +2580,23 @@ static void shrink_zones(struct zonelist *zonelist, 
> struct scan_control *sc)
>        * highmem pages could be pinning lowmem pages storing buffer_heads
>        */
>       orig_mask = sc->gfp_mask;
> -     if (buffer_heads_over_limit)
> +     if (buffer_heads_over_limit) {
>               sc->gfp_mask |= __GFP_HIGHMEM;
> +             sc->reclaim_idx = classzone_idx = gfp_zone(sc->gfp_mask);
> +     }
> 
We need to push/pop ->reclaim_idx as ->gfp_mask handled?

thanks
Hillf

Reply via email to