diff --git a/mm/vmscan.c b/mm/vmscan.c index c14a16044515..08e98c9f0a90 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -5654,8 +5654,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; } /******************************************************************************