Lines Matching refs:newfrag

471 	struct chfs_node_frag *newfrag;  in new_fragment()  local
472 newfrag = chfs_alloc_node_frag(); in new_fragment()
473 if (newfrag) { in new_fragment()
475 newfrag->ofs = ofs; in new_fragment()
476 newfrag->size = size; in new_fragment()
477 newfrag->node = fdn; in new_fragment()
478 if (newfrag->node) { in new_fragment()
479 newfrag->node->frags++; in new_fragment()
484 return newfrag; in new_fragment()
493 struct chfs_node_frag *newfrag, in no_overlapping_node() argument
496 if (lastend < newfrag->node->ofs) { in no_overlapping_node()
499 holefrag = new_fragment(NULL, lastend, newfrag->node->ofs - lastend); in no_overlapping_node()
501 chfs_free_node_frag(newfrag); in no_overlapping_node()
508 rb_tree_insert_node(fragtree, newfrag); in no_overlapping_node()
520 struct chfs_node_frag *newfrag) in chfs_add_frag_to_fragtree() argument
527 this = (struct chfs_node_frag *)rb_tree_find_node_leq(fragtree, &newfrag->ofs); in chfs_add_frag_to_fragtree()
536 if (lastend <= newfrag->ofs) { in chfs_add_frag_to_fragtree()
537 if (lastend && (lastend - 1) >> PAGE_SHIFT == newfrag->ofs >> PAGE_SHIFT) { in chfs_add_frag_to_fragtree()
540 CHFS_MARK_REF_NORMAL(newfrag->node->nref); in chfs_add_frag_to_fragtree()
542 return no_overlapping_node(fragtree, newfrag, this, lastend); in chfs_add_frag_to_fragtree()
545 if (newfrag->ofs > this->ofs) { in chfs_add_frag_to_fragtree()
546 CHFS_MARK_REF_NORMAL(newfrag->node->nref); in chfs_add_frag_to_fragtree()
550 if (this->ofs + this->size > newfrag->ofs + newfrag->size) { in chfs_add_frag_to_fragtree()
554 newfrag2 = new_fragment(this->node, newfrag->ofs + newfrag->size, in chfs_add_frag_to_fragtree()
555 this->ofs + this->size - newfrag->ofs - newfrag->size); in chfs_add_frag_to_fragtree()
559 this->size = newfrag->ofs - this->ofs; in chfs_add_frag_to_fragtree()
561 rb_tree_insert_node(fragtree, newfrag); in chfs_add_frag_to_fragtree()
567 this->size = newfrag->ofs - this->ofs; in chfs_add_frag_to_fragtree()
568 rb_tree_insert_node(fragtree, newfrag); in chfs_add_frag_to_fragtree()
573 rb_tree_insert_node(fragtree, newfrag); in chfs_add_frag_to_fragtree()
575 if (newfrag->ofs + newfrag->size >= this->ofs+this->size) { in chfs_add_frag_to_fragtree()
578 this->ofs += newfrag->size; in chfs_add_frag_to_fragtree()
579 this->size -= newfrag->size; in chfs_add_frag_to_fragtree()
588 …while ((this = frag_next(fragtree, newfrag)) && newfrag->ofs + newfrag->size >= this->ofs + this->… in chfs_add_frag_to_fragtree()
593 if (!this || newfrag->ofs + newfrag->size == this->ofs) in chfs_add_frag_to_fragtree()
596 this->size = (this->ofs + this->size) - (newfrag->ofs + newfrag->size); in chfs_add_frag_to_fragtree()
597 this->ofs = newfrag->ofs + newfrag->size; in chfs_add_frag_to_fragtree()
601 CHFS_MARK_REF_NORMAL(newfrag->node->nref); in chfs_add_frag_to_fragtree()
743 struct chfs_node_frag *newfrag; in chfs_add_full_dnode_to_inode() local
750 newfrag = new_fragment(fd, fd->ofs, fd->size); in chfs_add_full_dnode_to_inode()
751 if (unlikely(!newfrag)) in chfs_add_full_dnode_to_inode()
754 ret = chfs_add_frag_to_fragtree(chmp, &ip->fragtree, newfrag); in chfs_add_full_dnode_to_inode()
759 if (newfrag->ofs & (PAGE_SIZE - 1)) { in chfs_add_full_dnode_to_inode()
760 struct chfs_node_frag *prev = frag_prev(&ip->fragtree, newfrag); in chfs_add_full_dnode_to_inode()
768 if ((newfrag->ofs+newfrag->size) & (PAGE_SIZE - 1)) { in chfs_add_full_dnode_to_inode()
769 struct chfs_node_frag *next = frag_next(&ip->fragtree, newfrag); in chfs_add_full_dnode_to_inode()