diff --git a/mm/vmscan.c b/mm/vmscan.c index eefd9c908b659..9f3cc52fc3dab 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -4925,8 +4925,8 @@ static void lru_gen_shrink_node(struct pglist_data *pgdat, struct scan_control * blk_finish_plug(&plug); done: - /* kswapd should never fail */ - pgdat->kswapd_failures = 0; + if (sc->nr_reclaimed > reclaimed) + pgdat->kswapd_failures = 0; } /******************************************************************************