• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500-V1.0.1.40_1.0.68/src/linux/linux-2.6/fs/jffs2/

Lines Matching refs:jeb

170 static void jffs2_close_nextblock(struct jffs2_sb_info *c, struct jffs2_eraseblock *jeb)
175 jeb->offset));
179 if (ISDIRTY (jeb->wasted_size + jeb->dirty_size)) {
180 c->dirty_size += jeb->wasted_size;
181 c->wasted_size -= jeb->wasted_size;
182 jeb->dirty_size += jeb->wasted_size;
183 jeb->wasted_size = 0;
184 if (VERYDIRTY(c, jeb->dirty_size)) {
186 jeb->offset, jeb->free_size, jeb->dirty_size, jeb->used_size));
187 list_add_tail(&jeb->list, &c->very_dirty_list);
190 jeb->offset, jeb->free_size, jeb->dirty_size, jeb->used_size));
191 list_add_tail(&jeb->list, &c->dirty_list);
195 jeb->offset, jeb->free_size, jeb->dirty_size, jeb->used_size));
196 list_add_tail(&jeb->list, &c->clean_list);
202 /* Select a new jeb for nextblock */
271 struct jffs2_eraseblock *jeb = c->nextblock;
272 uint32_t reserved_size; /* for summary information at the end of the jeb */
281 if (jeb) {
283 dbg_summary("minsize=%d , jeb->free=%d ,"
285 minsize, jeb->free_size,
290 write out summary information now, close this jeb and select new nextblock? */
291 if (jeb && (PAD(minsize) + PAD(c->summary->sum_size + sumsize +
292 JFFS2_SUMMARY_FRAME_SIZE) > jeb->free_size)) {
294 /* Has summary been disabled for this jeb? */
301 dbg_summary("generating summary for 0x%08x.\n", jeb->offset);
309 diabling summary for this jeb and free the collected information
315 jffs2_close_nextblock(c, jeb);
316 jeb = NULL;
321 if (jeb && minsize > jeb->free_size) {
332 jeb = c->nextblock;
338 ret = jffs2_prealloc_raw_node_refs(c, jeb, 1);
347 waste = jeb->free_size;
348 jffs2_link_node_ref(c, jeb,
349 (jeb->offset + c->sector_size - waste) | REF_OBSOLETE,
351 jeb->dirty_size -= waste;
353 jeb->wasted_size += waste;
356 jffs2_close_nextblock(c, jeb);
357 jeb = NULL;
361 if (!jeb) {
367 jeb = c->nextblock;
369 if (jeb->free_size != c->sector_size - c->cleanmarker_size) {
370 printk(KERN_WARNING "Eep. Block 0x%08x taken from free_list had free_size of 0x%08x!!\n", jeb->offset, jeb->free_size);
374 /* OK, jeb (==c->nextblock) is now pointing at a block which definitely has
376 *len = jeb->free_size - reserved_size;
378 if (c->cleanmarker_size && jeb->used_size == c->cleanmarker_size &&
379 !jeb->first_node->next_in_ino) {
387 jffs2_mark_node_obsolete(c, jeb->first_node);
392 *len, jeb->offset + (c->sector_size - jeb->free_size)));
412 struct jffs2_eraseblock *jeb;
415 jeb = &c->blocks[ofs / c->sector_size];
423 && (jeb != c->nextblock || (ofs & ~3) != jeb->offset + (c->sector_size - jeb->free_size))) {
429 new = jffs2_link_node_ref(c, jeb, ofs, len, ic);
431 if (!jeb->free_size && !jeb->dirty_size && !ISDIRTY(jeb->wasted_size)) {
434 jeb->offset, jeb->free_size, jeb->dirty_size, jeb->used_size));
442 list_add_tail(&jeb->list, &c->clean_list);
445 jffs2_dbg_acct_sanity_check_nolock(c,jeb);
446 jffs2_dbg_acct_paranoia_check_nolock(c, jeb);
477 struct jffs2_eraseblock *jeb;
497 jeb = &c->blocks[blocknr];
512 freed_len = ref_totlen(c, jeb, ref);
515 D1(if (unlikely(jeb->unchecked_size < freed_len)) {
517 freed_len, blocknr, ref->flash_offset, jeb->used_size);
521 jeb->unchecked_size -= freed_len;
524 D1(if (unlikely(jeb->used_size < freed_len)) {
526 freed_len, blocknr, ref->flash_offset, jeb->used_size);
530 jeb->used_size -= freed_len;
535 if ((jeb->dirty_size || ISDIRTY(jeb->wasted_size + freed_len)) && jeb != c->nextblock) {
538 jeb->dirty_size += freed_len;
542 if (jeb->wasted_size) {
543 if (on_list(&jeb->list, &c->bad_used_list)) {
545 jeb->offset));
549 jeb->wasted_size, jeb->offset));
550 addedsize += jeb->wasted_size;
551 jeb->dirty_size += jeb->wasted_size;
552 c->dirty_size += jeb->wasted_size;
553 c->wasted_size -= jeb->wasted_size;
554 jeb->wasted_size = 0;
560 jeb->wasted_size += freed_len;
565 jffs2_dbg_acct_sanity_check_nolock(c, jeb);
566 jffs2_dbg_acct_paranoia_check_nolock(c, jeb);
579 if (jeb == c->nextblock) {
580 D2(printk(KERN_DEBUG "Not moving nextblock 0x%08x to dirty/erase_pending list\n", jeb->offset));
581 } else if (!jeb->used_size && !jeb->unchecked_size) {
582 if (jeb == c->gcblock) {
583 D1(printk(KERN_DEBUG "gcblock at 0x%08x completely dirtied. Clearing gcblock...\n", jeb->offset));
586 D1(printk(KERN_DEBUG "Eraseblock at 0x%08x completely dirtied. Removing from (dirty?) list...\n", jeb->offset));
587 list_del(&jeb->list);
591 list_add_tail(&jeb->list, &c->erasable_pending_wbuf_list);
597 list_add_tail(&jeb->list, &c->erase_pending_list);
604 list_add_tail(&jeb->list, &c->erasable_list);
608 } else if (jeb == c->gcblock) {
609 D2(printk(KERN_DEBUG "Not moving gcblock 0x%08x to dirty_list\n", jeb->offset));
610 } else if (ISDIRTY(jeb->dirty_size) && !ISDIRTY(jeb->dirty_size - addedsize)) {
611 D1(printk(KERN_DEBUG "Eraseblock at 0x%08x is freshly dirtied. Removing from clean list...\n", jeb->offset));
612 list_del(&jeb->list);
614 list_add_tail(&jeb->list, &c->dirty_list);
615 } else if (VERYDIRTY(c, jeb->dirty_size) &&
616 !VERYDIRTY(c, jeb->dirty_size - addedsize)) {
617 D1(printk(KERN_DEBUG "Eraseblock at 0x%08x is now very dirty. Removing from dirty list...\n", jeb->offset));
618 list_del(&jeb->list);
620 list_add_tail(&jeb->list, &c->very_dirty_list);
623 jeb->offset, jeb->free_size, jeb->dirty_size, jeb->used_size));