diff options
Diffstat (limited to 'mm/memcontrol.c')
| -rw-r--r-- | mm/memcontrol.c | 6 | 
1 files changed, 3 insertions, 3 deletions
diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 14c2f2017e37..a04225d372ba 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -2323,6 +2323,8 @@ done_restock:  	css_get_many(&memcg->css, batch);  	if (batch > nr_pages)  		refill_stock(memcg, batch - nr_pages); +	if (!(gfp_mask & __GFP_WAIT)) +		goto done;  	/*  	 * If the hierarchy is above the normal consumption range,  	 * make the charging task trim their excess contribution. @@ -5833,9 +5835,7 @@ void mem_cgroup_swapout(struct page *page, swp_entry_t entry)  	if (!mem_cgroup_is_root(memcg))  		page_counter_uncharge(&memcg->memory, 1); -	/* XXX: caller holds IRQ-safe mapping->tree_lock */ -	VM_BUG_ON(!irqs_disabled()); - +	/* Caller disabled preemption with mapping->tree_lock */  	mem_cgroup_charge_statistics(memcg, page, -1);  	memcg_check_events(memcg, page);  }  |