diff options
Diffstat (limited to 'mm/list_lru.c')
| -rw-r--r-- | mm/list_lru.c | 10 | 
1 files changed, 5 insertions, 5 deletions
| diff --git a/mm/list_lru.c b/mm/list_lru.c index 5aa6e44bc2ae..fe230081690b 100644 --- a/mm/list_lru.c +++ b/mm/list_lru.c @@ -534,7 +534,6 @@ static void memcg_drain_list_lru_node(struct list_lru *lru, int nid,  	struct list_lru_node *nlru = &lru->node[nid];  	int dst_idx = dst_memcg->kmemcg_id;  	struct list_lru_one *src, *dst; -	bool set;  	/*  	 * Since list_lru_{add,del} may be called under an IRQ-safe lock, @@ -546,11 +545,12 @@ static void memcg_drain_list_lru_node(struct list_lru *lru, int nid,  	dst = list_lru_from_memcg_idx(nlru, dst_idx);  	list_splice_init(&src->list, &dst->list); -	set = (!dst->nr_items && src->nr_items); -	dst->nr_items += src->nr_items; -	if (set) + +	if (src->nr_items) { +		dst->nr_items += src->nr_items;  		memcg_set_shrinker_bit(dst_memcg, nid, lru_shrinker_id(lru)); -	src->nr_items = 0; +		src->nr_items = 0; +	}  	spin_unlock_irq(&nlru->lock);  } |