Merge tag 'armsoc-arm64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
[linux-2.6-microblaze.git] / mm / truncate.c
index 8d8c62d..fd97f1d 100644 (file)
@@ -44,28 +44,13 @@ static void clear_exceptional_entry(struct address_space *mapping,
         * without the tree itself locked.  These unlocked entries
         * need verification under the tree lock.
         */
-       if (!__radix_tree_lookup(&mapping->page_tree, index, &node,
-                               &slot))
+       if (!__radix_tree_lookup(&mapping->page_tree, index, &node, &slot))
                goto unlock;
        if (*slot != entry)
                goto unlock;
-       radix_tree_replace_slot(slot, NULL);
+       __radix_tree_replace(&mapping->page_tree, node, slot, NULL,
+                            workingset_update_node, mapping);
        mapping->nrexceptional--;
-       if (!node)
-               goto unlock;
-       workingset_node_shadows_dec(node);
-       /*
-        * Don't track node without shadow entries.
-        *
-        * Avoid acquiring the list_lru lock if already untracked.
-        * The list_empty() test is safe as node->private_list is
-        * protected by mapping->tree_lock.
-        */
-       if (!workingset_node_shadows(node) &&
-           !list_empty(&node->private_list))
-               list_lru_del(&workingset_shadow_nodes,
-                               &node->private_list);
-       __radix_tree_delete_node(&mapping->page_tree, node);
 unlock:
        spin_unlock_irq(&mapping->tree_lock);
 }