diff --git a/mm/vmscan.c b/mm/vmscan.c index 28dbc5137e68..daa7e37c2236 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -7998,7 +7998,8 @@ static unsigned long __node_reclaim(struct pglist_data *pgdat, sc->gfp_mask); cond_resched(); - psi_memstall_enter(&pflags); + if (!sc->proactive) + psi_memstall_enter(&pflags); delayacct_freepages_start(); fs_reclaim_acquire(sc->gfp_mask); /* @@ -8015,7 +8016,8 @@ static unsigned long __node_reclaim(struct pglist_data *pgdat, memalloc_noreclaim_restore(noreclaim_flag); fs_reclaim_release(sc->gfp_mask); delayacct_freepages_end(); - psi_memstall_leave(&pflags); + if (!sc->proactive) + psi_memstall_leave(&pflags); trace_mm_vmscan_node_reclaim_end(sc->nr_reclaimed, NULL);