Lines Matching refs:tree
362 static void zswap_entry_put(struct zswap_tree *tree, in zswap_entry_put() argument
369 zswap_rb_erase(&tree->rbroot, entry); in zswap_entry_put()
875 struct zswap_tree *tree; in zswap_writeback_entry() local
896 tree = zswap_trees[swp_type(swpentry)]; in zswap_writeback_entry()
900 spin_lock(&tree->lock); in zswap_writeback_entry()
901 entry = zswap_entry_find_get(&tree->rbroot, offset); in zswap_writeback_entry()
904 spin_unlock(&tree->lock); in zswap_writeback_entry()
909 spin_unlock(&tree->lock); in zswap_writeback_entry()
955 spin_lock(&tree->lock); in zswap_writeback_entry()
957 zswap_entry_put(tree, entry); in zswap_writeback_entry()
966 if (entry == zswap_rb_search(&tree->rbroot, offset)) in zswap_writeback_entry()
967 zswap_entry_put(tree, entry); in zswap_writeback_entry()
968 spin_unlock(&tree->lock); in zswap_writeback_entry()
980 spin_lock(&tree->lock); in zswap_writeback_entry()
981 zswap_entry_put(tree, entry); in zswap_writeback_entry()
982 spin_unlock(&tree->lock); in zswap_writeback_entry()
1022 struct zswap_tree *tree = zswap_trees[type]; in zswap_frontswap_store() local
1039 if (!zswap_enabled || !tree) { in zswap_frontswap_store()
1132 spin_lock(&tree->lock); in zswap_frontswap_store()
1134 ret = zswap_rb_insert(&tree->rbroot, entry, &dupentry); in zswap_frontswap_store()
1138 zswap_rb_erase(&tree->rbroot, dupentry); in zswap_frontswap_store()
1139 zswap_entry_put(tree, dupentry); in zswap_frontswap_store()
1142 spin_unlock(&tree->lock); in zswap_frontswap_store()
1166 struct zswap_tree *tree = zswap_trees[type]; in zswap_frontswap_load() local
1174 spin_lock(&tree->lock); in zswap_frontswap_load()
1175 entry = zswap_entry_find_get(&tree->rbroot, offset); in zswap_frontswap_load()
1178 spin_unlock(&tree->lock); in zswap_frontswap_load()
1181 spin_unlock(&tree->lock); in zswap_frontswap_load()
1225 spin_lock(&tree->lock); in zswap_frontswap_load()
1226 zswap_entry_put(tree, entry); in zswap_frontswap_load()
1227 spin_unlock(&tree->lock); in zswap_frontswap_load()
1235 struct zswap_tree *tree = zswap_trees[type]; in zswap_frontswap_invalidate_page() local
1239 spin_lock(&tree->lock); in zswap_frontswap_invalidate_page()
1240 entry = zswap_rb_search(&tree->rbroot, offset); in zswap_frontswap_invalidate_page()
1243 spin_unlock(&tree->lock); in zswap_frontswap_invalidate_page()
1248 zswap_rb_erase(&tree->rbroot, entry); in zswap_frontswap_invalidate_page()
1251 zswap_entry_put(tree, entry); in zswap_frontswap_invalidate_page()
1253 spin_unlock(&tree->lock); in zswap_frontswap_invalidate_page()
1259 struct zswap_tree *tree = zswap_trees[type]; in zswap_frontswap_invalidate_area() local
1262 if (!tree) in zswap_frontswap_invalidate_area()
1266 spin_lock(&tree->lock); in zswap_frontswap_invalidate_area()
1267 rbtree_postorder_for_each_entry_safe(entry, n, &tree->rbroot, rbnode) in zswap_frontswap_invalidate_area()
1269 tree->rbroot = RB_ROOT; in zswap_frontswap_invalidate_area()
1270 spin_unlock(&tree->lock); in zswap_frontswap_invalidate_area()
1271 kfree(tree); in zswap_frontswap_invalidate_area()
1277 struct zswap_tree *tree; in zswap_frontswap_init() local
1279 tree = kzalloc(sizeof(*tree), GFP_KERNEL); in zswap_frontswap_init()
1280 if (!tree) { in zswap_frontswap_init()
1285 tree->rbroot = RB_ROOT; in zswap_frontswap_init()
1286 spin_lock_init(&tree->lock); in zswap_frontswap_init()
1287 zswap_trees[type] = tree; in zswap_frontswap_init()