Lines Matching refs:jeb
117 struct jffs2_eraseblock *jeb = list_entry(this, struct jffs2_eraseblock, list);
120 jeb->offset);
126 list_add_tail(&jeb->list, &c->erase_pending_list);
133 list_add_tail(&jeb->list, &c->erasable_list);
141 static void jffs2_block_refile(struct jffs2_sb_info *c, struct jffs2_eraseblock *jeb, int allow_empty)
143 jffs2_dbg(1, "About to refile bad block at %08x\n", jeb->offset);
146 if (c->nextblock == jeb)
149 list_del(&jeb->list);
150 if (jeb->first_node) {
152 jeb->offset);
153 list_add(&jeb->list, &c->bad_used_list);
158 jeb->offset);
159 list_add(&jeb->list, &c->erase_pending_list);
164 if (!jffs2_prealloc_raw_node_refs(c, jeb, 1)) {
165 uint32_t oldfree = jeb->free_size;
167 jffs2_link_node_ref(c, jeb,
168 (jeb->offset+c->sector_size-oldfree) | REF_OBSOLETE,
172 jeb->wasted_size += oldfree;
174 jeb->dirty_size -= oldfree;
178 jffs2_dbg_acct_sanity_check_nolock(c,jeb);
179 jffs2_dbg_acct_paranoia_check_nolock(c, jeb);
277 struct jffs2_eraseblock *jeb, *new_jeb;
285 jeb = &c->blocks[c->wbuf_ofs / c->sector_size];
289 jffs2_block_refile(c, jeb, REFILE_NOTEMPTY);
291 jffs2_block_refile(c, jeb, REFILE_ANYWAY);
294 BUG_ON(!ref_obsolete(jeb->last_node));
298 for (next = raw = jeb->first_node; next; raw = next) {
305 (ref_offset(raw) + ref_totlen(c, jeb, raw)),
311 (ref_offset(raw) + ref_totlen(c, jeb, raw)));
325 end = ref_offset(jeb->last_node);
329 while ((raw = ref_next(raw)) != jeb->last_node)
438 jffs2_add_physical_node_ref(c, ofs | REF_OBSOLETE, ref_totlen(c, jeb, first_raw), NULL);
463 for (raw = first_raw; raw != jeb->last_node; raw = ref_next(raw)) {
464 uint32_t rawlen = ref_totlen(c, jeb, raw);
537 jeb->dirty_size += rawlen;
538 jeb->used_size -= rawlen;
549 /* Fix up the original jeb now it's on the bad_list */
550 if (first_raw == jeb->first_node) {
552 jeb->offset);
553 list_move(&jeb->list, &c->erase_pending_list);
558 jffs2_dbg_acct_sanity_check_nolock(c, jeb);
559 jffs2_dbg_acct_paranoia_check_nolock(c, jeb);
798 struct jffs2_eraseblock *jeb;
926 jeb = &c->blocks[outvec_to / c->sector_size];
927 jffs2_block_refile(c, jeb, REFILE_ANYWAY);
1034 struct jffs2_eraseblock *jeb, int mode)
1046 ret = mtd_read_oob(c->mtd, jeb->offset, &ops);
1049 jeb->offset, ops.ooblen, ops.oobretlen, ret);
1062 "%08x\n", ops.oobbuf[i], i, jeb->offset);
1077 struct jffs2_eraseblock *jeb)
1088 ret = mtd_read_oob(c->mtd, jeb->offset, &ops);
1091 jeb->offset, ops.ooblen, ops.oobretlen, ret);
1101 struct jffs2_eraseblock *jeb)
1113 ret = mtd_write_oob(c->mtd, jeb->offset, &ops);
1116 jeb->offset, ops.ooblen, ops.oobretlen, ret);
1133 int jffs2_write_nand_badblock(struct jffs2_sb_info *c, struct jffs2_eraseblock *jeb, uint32_t bad_offset)
1138 if( ++jeb->bad_count < MAX_ERASE_FAILURES)
1146 __func__, jeb->offset, ret);