diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 062d925336cb..56abc4f426f4 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -6686,8 +6686,8 @@ static ssize_t memory_reclaim(struct kernfs_open_file *of, char *buf, lru_add_drain_all(); reclaimed = try_to_free_mem_cgroup_pages(memcg, - nr_to_reclaim - nr_reclaimed, - GFP_KERNEL, reclaim_options); + min(nr_to_reclaim - nr_reclaimed, SWAP_CLUSTER_MAX), + GFP_KERNEL, reclaim_options); if (!reclaimed && !nr_retries--) return -EAGAIN;