Lines Matching refs:fragtree
488 * no_overlapping_node - inserts a node to the fragtree
492 no_overlapping_node(struct rb_tree *fragtree,
505 rb_tree_insert_node(fragtree, holefrag);
508 rb_tree_insert_node(fragtree, newfrag);
515 * adds a fragment to a data node's fragtree
519 struct rb_tree *fragtree,
527 this = (struct chfs_node_frag *)rb_tree_find_node_leq(fragtree, &newfrag->ofs);
542 return no_overlapping_node(fragtree, newfrag, this, lastend);
561 rb_tree_insert_node(fragtree, newfrag);
562 rb_tree_insert_node(fragtree, newfrag2);
568 rb_tree_insert_node(fragtree, newfrag);
572 rb_tree_remove_node(fragtree, this);
573 rb_tree_insert_node(fragtree, newfrag);
581 fragtree, this);
588 while ((this = frag_next(fragtree, newfrag)) && newfrag->ofs + newfrag->size >= this->ofs + this->size) {
589 rb_tree_remove_node(fragtree, this);
608 * removes all fragments from a fragtree and DOESN'T OBSOLETE them
611 chfs_remove_frags_of_node(struct chfs_mount *chmp, struct rb_tree *fragtree,
622 this = (struct chfs_node_frag *)RB_TREE_MIN(fragtree);
624 next = frag_next(fragtree, this);
626 rb_tree_remove_node(fragtree, this);
635 * removes all fragments from a fragtree and OBSOLETES them
638 chfs_kill_fragtree(struct chfs_mount *chmp, struct rb_tree *fragtree)
644 this = (struct chfs_node_frag *)RB_TREE_MIN(fragtree);
646 next = frag_next(fragtree, this);
647 rb_tree_remove_node(fragtree, this);
656 struct rb_tree *fragtree, uint32_t size)
663 frag = (struct chfs_node_frag *)rb_tree_find_node_leq(fragtree, &size);
670 frag = frag_next(fragtree, frag);
675 struct chfs_node_frag *next = frag_next(fragtree, frag);
677 rb_tree_remove_node(fragtree, frag);
686 frag = frag_last(fragtree);
749 /* Create a new fragment from the data node and add it to the fragtree. */
754 ret = chfs_add_frag_to_fragtree(chmp, &ip->fragtree, newfrag);
760 struct chfs_node_frag *prev = frag_prev(&ip->fragtree, newfrag);
769 struct chfs_node_frag *next = frag_next(&ip->fragtree, newfrag);
882 /* chfs_build_fragtree - builds fragtree from temporary tree */
919 /* Start to build the fragtree. */
946 /* Add node to inode and its fragtree. */
1027 * Firstly get temporary nodes then build fragtree.
1051 /* FIXME Should we kill fragtree or something here? */
1055 /* Build fragtree from temp nodes. */
1056 rb_tree_init(&ip->fragtree, &frag_rbtree_ops);
1062 /* FIXME Should we kill fragtree or something here? */
1083 uint32_t retsize = chfs_truncate_fragtree(chmp, &ip->fragtree, fvnode->dn_size);
1114 /* Calculate the size of the file from its fragtree. */
1116 frag = (struct chfs_node_frag *)rb_tree_find_node_leq(&ip->fragtree, &ofs);