Lines Matching refs:jeb

243 static void jffs2_close_nextblock(struct jffs2_sb_info *c, struct jffs2_eraseblock *jeb)
248 __func__, jeb->offset);
252 if (ISDIRTY (jeb->wasted_size + jeb->dirty_size)) {
253 c->dirty_size += jeb->wasted_size;
254 c->wasted_size -= jeb->wasted_size;
255 jeb->dirty_size += jeb->wasted_size;
256 jeb->wasted_size = 0;
257 if (VERYDIRTY(c, jeb->dirty_size)) {
259 jeb->offset, jeb->free_size, jeb->dirty_size,
260 jeb->used_size);
261 list_add_tail(&jeb->list, &c->very_dirty_list);
264 jeb->offset, jeb->free_size, jeb->dirty_size,
265 jeb->used_size);
266 list_add_tail(&jeb->list, &c->dirty_list);
270 jeb->offset, jeb->free_size, jeb->dirty_size,
271 jeb->used_size);
272 list_add_tail(&jeb->list, &c->clean_list);
278 /* Select a new jeb for nextblock */
357 struct jffs2_eraseblock *jeb = c->nextblock;
358 uint32_t reserved_size; /* for summary information at the end of the jeb */
367 if (jeb) {
369 dbg_summary("minsize=%d , jeb->free=%d ,"
371 minsize, jeb->free_size,
376 write out summary information now, close this jeb and select new nextblock? */
377 if (jeb && (PAD(minsize) + PAD(c->summary->sum_size + sumsize +
378 JFFS2_SUMMARY_FRAME_SIZE) > jeb->free_size)) {
380 /* Has summary been disabled for this jeb? */
387 dbg_summary("generating summary for 0x%08x.\n", jeb->offset);
395 diabling summary for this jeb and free the collected information
401 jffs2_close_nextblock(c, jeb);
402 jeb = NULL;
407 if (jeb && minsize > jeb->free_size) {
419 jeb = c->nextblock;
425 ret = jffs2_prealloc_raw_node_refs(c, jeb, 1);
436 waste = jeb->free_size;
437 jffs2_link_node_ref(c, jeb,
438 (jeb->offset + c->sector_size - waste) | REF_OBSOLETE,
441 jeb->dirty_size -= waste;
443 jeb->wasted_size += waste;
446 jffs2_close_nextblock(c, jeb);
447 jeb = NULL;
451 if (!jeb) {
457 jeb = c->nextblock;
459 if (jeb->free_size != c->sector_size - c->cleanmarker_size) {
461 jeb->offset, jeb->free_size);
465 /* OK, jeb (==c->nextblock) is now pointing at a block which definitely has
467 *len = jeb->free_size - reserved_size;
469 if (c->cleanmarker_size && jeb->used_size == c->cleanmarker_size &&
470 !jeb->first_node->next_in_ino) {
478 jffs2_mark_node_obsolete(c, jeb->first_node);
484 *len, jeb->offset + (c->sector_size - jeb->free_size));
504 struct jffs2_eraseblock *jeb;
507 jeb = &c->blocks[ofs / c->sector_size];
516 && (jeb != c->nextblock || (ofs & ~3) != jeb->offset + (c->sector_size - jeb->free_size))) {
524 jeb->offset + (c->sector_size - jeb->free_size));
530 new = jffs2_link_node_ref(c, jeb, ofs, len, ic);
532 if (!jeb->free_size && !jeb->dirty_size && !ISDIRTY(jeb->wasted_size)) {
535 jeb->offset, jeb->free_size, jeb->dirty_size,
536 jeb->used_size);
544 list_add_tail(&jeb->list, &c->clean_list);
547 jffs2_dbg_acct_sanity_check_nolock(c,jeb);
548 jffs2_dbg_acct_paranoia_check_nolock(c, jeb);
581 struct jffs2_eraseblock *jeb;
603 jeb = &c->blocks[blocknr];
618 freed_len = ref_totlen(c, jeb, ref);
621 D1(if (unlikely(jeb->unchecked_size < freed_len)) {
624 ref->flash_offset, jeb->used_size);
629 jeb->unchecked_size -= freed_len;
632 D1(if (unlikely(jeb->used_size < freed_len)) {
635 ref->flash_offset, jeb->used_size);
640 jeb->used_size -= freed_len;
645 if ((jeb->dirty_size || ISDIRTY(jeb->wasted_size + freed_len)) && jeb != c->nextblock) {
648 jeb->dirty_size += freed_len;
652 if (jeb->wasted_size) {
653 if (on_list(&jeb->list, &c->bad_used_list)) {
655 jeb->offset);
659 jeb->wasted_size, jeb->offset);
660 addedsize += jeb->wasted_size;
661 jeb->dirty_size += jeb->wasted_size;
662 c->dirty_size += jeb->wasted_size;
663 c->wasted_size -= jeb->wasted_size;
664 jeb->wasted_size = 0;
670 jeb->wasted_size += freed_len;
675 jffs2_dbg_acct_sanity_check_nolock(c, jeb);
676 jffs2_dbg_acct_paranoia_check_nolock(c, jeb);
689 if (jeb == c->nextblock) {
691 jeb->offset);
692 } else if (!jeb->used_size && !jeb->unchecked_size) {
693 if (jeb == c->gcblock) {
695 jeb->offset);
699 jeb->offset);
700 list_del(&jeb->list);
704 list_add_tail(&jeb->list, &c->erasable_pending_wbuf_list);
710 list_add_tail(&jeb->list, &c->erase_pending_list);
717 list_add_tail(&jeb->list, &c->erasable_list);
721 } else if (jeb == c->gcblock) {
723 jeb->offset);
724 } else if (ISDIRTY(jeb->dirty_size) && !ISDIRTY(jeb->dirty_size - addedsize)) {
726 jeb->offset);
727 list_del(&jeb->list);
729 list_add_tail(&jeb->list, &c->dirty_list);
730 } else if (VERYDIRTY(c, jeb->dirty_size) &&
731 !VERYDIRTY(c, jeb->dirty_size - addedsize)) {
733 jeb->offset);
734 list_del(&jeb->list);
736 list_add_tail(&jeb->list, &c->very_dirty_list);
739 jeb->offset, jeb->free_size, jeb->dirty_size,
740 jeb->used_size);
842 struct jffs2_eraseblock *jeb;
868 list_for_each_entry(jeb, &c->very_dirty_list, list) {