Lines Matching refs:tree
311 static void zswap_entry_put(struct zswap_tree *tree, in zswap_entry_put() argument
318 zswap_rb_erase(&tree->rbroot, entry); in zswap_entry_put()
536 struct zswap_tree *tree; in zswap_writeback_entry() local
551 tree = zswap_trees[swp_type(swpentry)]; in zswap_writeback_entry()
555 spin_lock(&tree->lock); in zswap_writeback_entry()
556 entry = zswap_entry_find_get(&tree->rbroot, offset); in zswap_writeback_entry()
559 spin_unlock(&tree->lock); in zswap_writeback_entry()
562 spin_unlock(&tree->lock); in zswap_writeback_entry()
602 spin_lock(&tree->lock); in zswap_writeback_entry()
604 zswap_entry_put(tree, entry); in zswap_writeback_entry()
613 if (entry == zswap_rb_search(&tree->rbroot, offset)) in zswap_writeback_entry()
614 zswap_entry_put(tree, entry); in zswap_writeback_entry()
615 spin_unlock(&tree->lock); in zswap_writeback_entry()
627 spin_lock(&tree->lock); in zswap_writeback_entry()
628 zswap_entry_put(tree, entry); in zswap_writeback_entry()
629 spin_unlock(&tree->lock); in zswap_writeback_entry()
642 struct zswap_tree *tree = zswap_trees[type]; in zswap_frontswap_store() local
651 if (!tree) { in zswap_frontswap_store()
709 spin_lock(&tree->lock); in zswap_frontswap_store()
711 ret = zswap_rb_insert(&tree->rbroot, entry, &dupentry); in zswap_frontswap_store()
715 zswap_rb_erase(&tree->rbroot, dupentry); in zswap_frontswap_store()
716 zswap_entry_put(tree, dupentry); in zswap_frontswap_store()
719 spin_unlock(&tree->lock); in zswap_frontswap_store()
741 struct zswap_tree *tree = zswap_trees[type]; in zswap_frontswap_load() local
748 spin_lock(&tree->lock); in zswap_frontswap_load()
749 entry = zswap_entry_find_get(&tree->rbroot, offset); in zswap_frontswap_load()
752 spin_unlock(&tree->lock); in zswap_frontswap_load()
755 spin_unlock(&tree->lock); in zswap_frontswap_load()
768 spin_lock(&tree->lock); in zswap_frontswap_load()
769 zswap_entry_put(tree, entry); in zswap_frontswap_load()
770 spin_unlock(&tree->lock); in zswap_frontswap_load()
778 struct zswap_tree *tree = zswap_trees[type]; in zswap_frontswap_invalidate_page() local
782 spin_lock(&tree->lock); in zswap_frontswap_invalidate_page()
783 entry = zswap_rb_search(&tree->rbroot, offset); in zswap_frontswap_invalidate_page()
786 spin_unlock(&tree->lock); in zswap_frontswap_invalidate_page()
791 zswap_rb_erase(&tree->rbroot, entry); in zswap_frontswap_invalidate_page()
794 zswap_entry_put(tree, entry); in zswap_frontswap_invalidate_page()
796 spin_unlock(&tree->lock); in zswap_frontswap_invalidate_page()
802 struct zswap_tree *tree = zswap_trees[type]; in zswap_frontswap_invalidate_area() local
805 if (!tree) in zswap_frontswap_invalidate_area()
809 spin_lock(&tree->lock); in zswap_frontswap_invalidate_area()
810 rbtree_postorder_for_each_entry_safe(entry, n, &tree->rbroot, rbnode) in zswap_frontswap_invalidate_area()
812 tree->rbroot = RB_ROOT; in zswap_frontswap_invalidate_area()
813 spin_unlock(&tree->lock); in zswap_frontswap_invalidate_area()
814 kfree(tree); in zswap_frontswap_invalidate_area()
824 struct zswap_tree *tree; in zswap_frontswap_init() local
826 tree = kzalloc(sizeof(struct zswap_tree), GFP_KERNEL); in zswap_frontswap_init()
827 if (!tree) { in zswap_frontswap_init()
832 tree->rbroot = RB_ROOT; in zswap_frontswap_init()
833 spin_lock_init(&tree->lock); in zswap_frontswap_init()
834 zswap_trees[type] = tree; in zswap_frontswap_init()