• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/fs/jffs2/

Lines Matching refs:jeb

183 static void jffs2_close_nextblock(struct jffs2_sb_info *c, struct jffs2_eraseblock *jeb)
188 jeb->offset));
192 if (ISDIRTY (jeb->wasted_size + jeb->dirty_size)) {
193 c->dirty_size += jeb->wasted_size;
194 c->wasted_size -= jeb->wasted_size;
195 jeb->dirty_size += jeb->wasted_size;
196 jeb->wasted_size = 0;
197 if (VERYDIRTY(c, jeb->dirty_size)) {
199 jeb->offset, jeb->free_size, jeb->dirty_size, jeb->used_size));
200 list_add_tail(&jeb->list, &c->very_dirty_list);
203 jeb->offset, jeb->free_size, jeb->dirty_size, jeb->used_size));
204 list_add_tail(&jeb->list, &c->dirty_list);
208 jeb->offset, jeb->free_size, jeb->dirty_size, jeb->used_size));
209 list_add_tail(&jeb->list, &c->clean_list);
215 /* Select a new jeb for nextblock */
290 struct jffs2_eraseblock *jeb = c->nextblock;
291 uint32_t reserved_size; /* for summary information at the end of the jeb */
300 if (jeb) {
302 dbg_summary("minsize=%d , jeb->free=%d ,"
304 minsize, jeb->free_size,
309 write out summary information now, close this jeb and select new nextblock? */
310 if (jeb && (PAD(minsize) + PAD(c->summary->sum_size + sumsize +
311 JFFS2_SUMMARY_FRAME_SIZE) > jeb->free_size)) {
313 /* Has summary been disabled for this jeb? */
320 dbg_summary("generating summary for 0x%08x.\n", jeb->offset);
328 diabling summary for this jeb and free the collected information
334 jffs2_close_nextblock(c, jeb);
335 jeb = NULL;
340 if (jeb && minsize > jeb->free_size) {
351 jeb = c->nextblock;
357 ret = jffs2_prealloc_raw_node_refs(c, jeb, 1);
366 waste = jeb->free_size;
367 jffs2_link_node_ref(c, jeb,
368 (jeb->offset + c->sector_size - waste) | REF_OBSOLETE,
370 jeb->dirty_size -= waste;
372 jeb->wasted_size += waste;
375 jffs2_close_nextblock(c, jeb);
376 jeb = NULL;
380 if (!jeb) {
386 jeb = c->nextblock;
388 if (jeb->free_size != c->sector_size - c->cleanmarker_size) {
389 printk(KERN_WARNING "Eep. Block 0x%08x taken from free_list had free_size of 0x%08x!!\n", jeb->offset, jeb->free_size);
393 /* OK, jeb (==c->nextblock) is now pointing at a block which definitely has
395 *len = jeb->free_size - reserved_size;
397 if (c->cleanmarker_size && jeb->used_size == c->cleanmarker_size &&
398 !jeb->first_node->next_in_ino) {
406 jffs2_mark_node_obsolete(c, jeb->first_node);
411 *len, jeb->offset + (c->sector_size - jeb->free_size)));
431 struct jffs2_eraseblock *jeb;
434 jeb = &c->blocks[ofs / c->sector_size];
442 && (jeb != c->nextblock || (ofs & ~3) != jeb->offset + (c->sector_size - jeb->free_size))) {
448 printk(", expected at %08x\n", jeb->offset + (c->sector_size - jeb->free_size));
453 new = jffs2_link_node_ref(c, jeb, ofs, len, ic);
455 if (!jeb->free_size && !jeb->dirty_size && !ISDIRTY(jeb->wasted_size)) {
458 jeb->offset, jeb->free_size, jeb->dirty_size, jeb->used_size));
466 list_add_tail(&jeb->list, &c->clean_list);
469 jffs2_dbg_acct_sanity_check_nolock(c,jeb);
470 jffs2_dbg_acct_paranoia_check_nolock(c, jeb);
503 struct jffs2_eraseblock *jeb;
523 jeb = &c->blocks[blocknr];
538 freed_len = ref_totlen(c, jeb, ref);
541 D1(if (unlikely(jeb->unchecked_size < freed_len)) {
543 freed_len, blocknr, ref->flash_offset, jeb->used_size);
547 jeb->unchecked_size -= freed_len;
550 D1(if (unlikely(jeb->used_size < freed_len)) {
552 freed_len, blocknr, ref->flash_offset, jeb->used_size);
556 jeb->used_size -= freed_len;
561 if ((jeb->dirty_size || ISDIRTY(jeb->wasted_size + freed_len)) && jeb != c->nextblock) {
564 jeb->dirty_size += freed_len;
568 if (jeb->wasted_size) {
569 if (on_list(&jeb->list, &c->bad_used_list)) {
571 jeb->offset));
575 jeb->wasted_size, jeb->offset));
576 addedsize += jeb->wasted_size;
577 jeb->dirty_size += jeb->wasted_size;
578 c->dirty_size += jeb->wasted_size;
579 c->wasted_size -= jeb->wasted_size;
580 jeb->wasted_size = 0;
586 jeb->wasted_size += freed_len;
591 jffs2_dbg_acct_sanity_check_nolock(c, jeb);
592 jffs2_dbg_acct_paranoia_check_nolock(c, jeb);
605 if (jeb == c->nextblock) {
606 D2(printk(KERN_DEBUG "Not moving nextblock 0x%08x to dirty/erase_pending list\n", jeb->offset));
607 } else if (!jeb->used_size && !jeb->unchecked_size) {
608 if (jeb == c->gcblock) {
609 D1(printk(KERN_DEBUG "gcblock at 0x%08x completely dirtied. Clearing gcblock...\n", jeb->offset));
612 D1(printk(KERN_DEBUG "Eraseblock at 0x%08x completely dirtied. Removing from (dirty?) list...\n", jeb->offset));
613 list_del(&jeb->list);
617 list_add_tail(&jeb->list, &c->erasable_pending_wbuf_list);
623 list_add_tail(&jeb->list, &c->erase_pending_list);
630 list_add_tail(&jeb->list, &c->erasable_list);
634 } else if (jeb == c->gcblock) {
635 D2(printk(KERN_DEBUG "Not moving gcblock 0x%08x to dirty_list\n", jeb->offset));
636 } else if (ISDIRTY(jeb->dirty_size) && !ISDIRTY(jeb->dirty_size - addedsize)) {
637 D1(printk(KERN_DEBUG "Eraseblock at 0x%08x is freshly dirtied. Removing from clean list...\n", jeb->offset));
638 list_del(&jeb->list);
640 list_add_tail(&jeb->list, &c->dirty_list);
641 } else if (VERYDIRTY(c, jeb->dirty_size) &&
642 !VERYDIRTY(c, jeb->dirty_size - addedsize)) {
643 D1(printk(KERN_DEBUG "Eraseblock at 0x%08x is now very dirty. Removing from dirty list...\n", jeb->offset));
644 list_del(&jeb->list);
646 list_add_tail(&jeb->list, &c->very_dirty_list);
649 jeb->offset, jeb->free_size, jeb->dirty_size, jeb->used_size));
743 struct jffs2_eraseblock *jeb;
769 list_for_each_entry(jeb, &c->very_dirty_list, list) {