Lines Matching refs:tree
257 struct zswap_tree *tree);
416 static void zswap_entry_put(struct zswap_tree *tree, in zswap_entry_put() argument
625 static void zswap_invalidate_entry(struct zswap_tree *tree, in zswap_invalidate_entry() argument
628 if (zswap_rb_erase(&tree->rbroot, entry)) in zswap_invalidate_entry()
629 zswap_entry_put(tree, entry); in zswap_invalidate_entry()
635 struct zswap_tree *tree; in zswap_reclaim_entry() local
653 tree = zswap_trees[swp_type(entry->swpentry)]; in zswap_reclaim_entry()
657 spin_lock(&tree->lock); in zswap_reclaim_entry()
658 if (entry != zswap_rb_search(&tree->rbroot, swpoffset)) { in zswap_reclaim_entry()
664 spin_unlock(&tree->lock); in zswap_reclaim_entry()
666 ret = zswap_writeback_entry(entry, tree); in zswap_reclaim_entry()
668 spin_lock(&tree->lock); in zswap_reclaim_entry()
682 zswap_invalidate_entry(tree, entry); in zswap_reclaim_entry()
686 zswap_entry_put(tree, entry); in zswap_reclaim_entry()
688 spin_unlock(&tree->lock); in zswap_reclaim_entry()
1056 struct zswap_tree *tree) in zswap_writeback_entry() argument
1099 spin_lock(&tree->lock); in zswap_writeback_entry()
1100 if (zswap_rb_search(&tree->rbroot, swp_offset(entry->swpentry)) != entry) { in zswap_writeback_entry()
1101 spin_unlock(&tree->lock); in zswap_writeback_entry()
1106 spin_unlock(&tree->lock); in zswap_writeback_entry()
1197 struct zswap_tree *tree = zswap_trees[type]; in zswap_store() local
1218 if (!zswap_enabled || !tree) in zswap_store()
1226 spin_lock(&tree->lock); in zswap_store()
1227 dupentry = zswap_rb_search(&tree->rbroot, offset); in zswap_store()
1230 zswap_invalidate_entry(tree, dupentry); in zswap_store()
1232 spin_unlock(&tree->lock); in zswap_store()
1348 spin_lock(&tree->lock); in zswap_store()
1355 while (zswap_rb_insert(&tree->rbroot, entry, &dupentry) == -EEXIST) { in zswap_store()
1358 zswap_invalidate_entry(tree, dupentry); in zswap_store()
1365 spin_unlock(&tree->lock); in zswap_store()
1397 struct zswap_tree *tree = zswap_trees[type]; in zswap_load() local
1409 spin_lock(&tree->lock); in zswap_load()
1410 entry = zswap_entry_find_get(&tree->rbroot, offset); in zswap_load()
1412 spin_unlock(&tree->lock); in zswap_load()
1415 spin_unlock(&tree->lock); in zswap_load()
1465 spin_lock(&tree->lock); in zswap_load()
1467 zswap_invalidate_entry(tree, entry); in zswap_load()
1474 zswap_entry_put(tree, entry); in zswap_load()
1475 spin_unlock(&tree->lock); in zswap_load()
1482 struct zswap_tree *tree = zswap_trees[type]; in zswap_invalidate() local
1486 spin_lock(&tree->lock); in zswap_invalidate()
1487 entry = zswap_rb_search(&tree->rbroot, offset); in zswap_invalidate()
1490 spin_unlock(&tree->lock); in zswap_invalidate()
1493 zswap_invalidate_entry(tree, entry); in zswap_invalidate()
1494 spin_unlock(&tree->lock); in zswap_invalidate()
1499 struct zswap_tree *tree; in zswap_swapon() local
1501 tree = kzalloc(sizeof(*tree), GFP_KERNEL); in zswap_swapon()
1502 if (!tree) { in zswap_swapon()
1507 tree->rbroot = RB_ROOT; in zswap_swapon()
1508 spin_lock_init(&tree->lock); in zswap_swapon()
1509 zswap_trees[type] = tree; in zswap_swapon()
1514 struct zswap_tree *tree = zswap_trees[type]; in zswap_swapoff() local
1517 if (!tree) in zswap_swapoff()
1521 spin_lock(&tree->lock); in zswap_swapoff()
1522 rbtree_postorder_for_each_entry_safe(entry, n, &tree->rbroot, rbnode) in zswap_swapoff()
1524 tree->rbroot = RB_ROOT; in zswap_swapoff()
1525 spin_unlock(&tree->lock); in zswap_swapoff()
1526 kfree(tree); in zswap_swapoff()