diff options
| author | Dmitry Shmidt <dimitrysh@google.com> | 2016-10-28 10:44:19 -0700 |
|---|---|---|
| committer | Dmitry Shmidt <dimitrysh@google.com> | 2016-10-28 10:44:19 -0700 |
| commit | c302df26cb5bf9f60633785cf5b5ed162a138dfe (patch) | |
| tree | d7e1f042a5a478a616010ff42e27fbf1547eca8e /mm/workingset.c | |
| parent | a979feb9e9f1827463f61ad241b198aa7dc27cd3 (diff) | |
| parent | c843445f19f4e6f05b32125d7556958f98033999 (diff) | |
Merge tag 'v4.4.28' into android-4.4.y
This is the 4.4.28 stable release
Diffstat (limited to 'mm/workingset.c')
| -rw-r--r-- | mm/workingset.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/mm/workingset.c b/mm/workingset.c index aa017133744b..df66f426fdcf 100644 --- a/mm/workingset.c +++ b/mm/workingset.c @@ -341,21 +341,19 @@ static enum lru_status shadow_lru_isolate(struct list_head *item, * no pages, so we expect to be able to remove them all and * delete and free the empty node afterwards. */ - - BUG_ON(!node->count); - BUG_ON(node->count & RADIX_TREE_COUNT_MASK); + BUG_ON(!workingset_node_shadows(node)); + BUG_ON(workingset_node_pages(node)); for (i = 0; i < RADIX_TREE_MAP_SIZE; i++) { if (node->slots[i]) { BUG_ON(!radix_tree_exceptional_entry(node->slots[i])); node->slots[i] = NULL; - BUG_ON(node->count < (1U << RADIX_TREE_COUNT_SHIFT)); - node->count -= 1U << RADIX_TREE_COUNT_SHIFT; + workingset_node_shadows_dec(node); BUG_ON(!mapping->nrshadows); mapping->nrshadows--; } } - BUG_ON(node->count); + BUG_ON(workingset_node_shadows(node)); inc_zone_state(page_zone(virt_to_page(node)), WORKINGSET_NODERECLAIM); if (!__radix_tree_delete_node(&mapping->page_tree, node)) BUG(); |
