Lines Matching defs:frag

61 	struct jffs2_node_frag *frag = jffs2_lookup_node_frag(list, size);
65 /* We know frag->ofs <= size. That's what lookup does for us */
66 if (frag && frag->ofs != size) {
67 if (frag->ofs+frag->size > size) {
68 frag->size = size - frag->ofs;
70 frag = frag_next(frag);
72 while (frag && frag->ofs >= size) {
73 struct jffs2_node_frag *next = frag_next(frag);
75 frag_erase(frag, list);
76 jffs2_obsolete_node_frag(c, frag);
77 frag = next;
83 frag = frag_last(list);
86 if (!frag)
88 if (frag->ofs + frag->size < size)
89 return frag->ofs + frag->size;
93 if (frag->node && (frag->ofs & (PAGE_SIZE - 1)) == 0) {
95 frag->ofs, frag->ofs + frag->size);
96 frag->node->raw->flash_offset = ref_offset(frag->node->raw) | REF_PRISTINE;
127 dbg_fragtree2("insert frag (0x%04x-0x%04x)\n", newfrag->ofs, newfrag->ofs + newfrag->size);
138 JFFS2_ERROR("duplicate frag at %08x (%p,%p)\n", newfrag->ofs, newfrag, base);
187 dbg_fragtree2("add hole frag %#04x-%#04x on the right of the new frag.\n",
191 dbg_fragtree2("Add hole frag %#04x-%#04x to the root of the tree.\n",
224 dbg_fragtree2("lookup gave frag 0x%04x-0x%04x; phys 0x%08x (*%p)\n",
228 dbg_fragtree2("lookup gave no frag\n");
250 dbg_fragtree2("dealing with frag %u-%u, phys %#08x(%d).\n",
254 dbg_fragtree2("dealing with hole frag %u-%u.\n",
257 /* OK. 'this' is pointing at the first frag that newfrag->ofs at least partially obsoletes,
270 /* The new node splits 'this' frag into two */
274 dbg_fragtree2("split old frag 0x%04x-0x%04x, phys 0x%08x\n",
277 dbg_fragtree2("split old hole frag 0x%04x-0x%04x\n",
280 /* New second frag pointing to this's node */
305 /* New node just reduces 'this' frag in size, doesn't split it */
312 /* New frag starts at the same point as 'this' used to. Replace
320 dbg_fragtree2("obsoleting node frag %p (%x-%x)\n", this, this->ofs, this->ofs+this->size);
335 /* 'this' frag is obsoleted completely. */
336 dbg_fragtree2("obsoleting node frag %p (%x-%x) and removing from tree\n",
341 /* Now we're pointing at the first frag which isn't totally obsoleted by
342 the new frag */
530 struct jffs2_node_frag *frag = NULL;
537 frag = rb_entry(next, struct jffs2_node_frag, rb);
539 if (frag->ofs + frag->size <= offset) {
541 if (!prev || frag->ofs > prev->ofs)
542 prev = frag;
543 next = frag->rb.rb_right;
544 } else if (frag->ofs > offset) {
545 next = frag->rb.rb_left;
547 return frag;
555 dbg_fragtree2("no match. Returning frag %#04x-%#04x, closest previous\n",
567 struct jffs2_node_frag *frag, *next;
570 rbtree_postorder_for_each_entry_safe(frag, next, root, rb) {
571 if (frag->node && !(--frag->node->frags)) {
572 /* Not a hole, and it's the final remaining frag
575 jffs2_mark_node_obsolete(c, frag->node->raw);
577 jffs2_free_full_dnode(frag->node);
580 jffs2_free_node_frag(frag);