• 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

23 	struct jffs2_eraseblock *jeb;
30 static void jffs2_erase_failed(struct jffs2_sb_info *c, struct jffs2_eraseblock *jeb, uint32_t bad_offset);
31 static void jffs2_erase_succeeded(struct jffs2_sb_info *c, struct jffs2_eraseblock *jeb);
32 static void jffs2_mark_erased_block(struct jffs2_sb_info *c, struct jffs2_eraseblock *jeb);
35 struct jffs2_eraseblock *jeb)
40 ret = jffs2_flash_erase(c, jeb);
42 jffs2_erase_succeeded(c, jeb);
45 bad_offset = jeb->offset;
50 jeb->offset, jeb->offset, jeb->offset + c->sector_size));
56 list_move(&jeb->list, &c->erase_pending_list);
59 jeb->dirty_size = c->sector_size;
68 instr->addr = jeb->offset;
74 ((struct erase_priv_struct *)instr->priv)->jeb = jeb;
87 D1(printk(KERN_DEBUG "Erase at 0x%08x failed: %d. Refiling on erase_pending_list\n", jeb->offset, ret));
90 list_move(&jeb->list, &c->erase_pending_list);
93 jeb->dirty_size = c->sector_size;
100 printk(KERN_WARNING "Erase at 0x%08x failed immediately: -EROFS. Is the sector locked?\n", jeb->offset);
102 printk(KERN_WARNING "Erase at 0x%08x failed immediately: errno %d\n", jeb->offset, ret);
104 jffs2_erase_failed(c, jeb, bad_offset);
109 struct jffs2_eraseblock *jeb;
120 jeb = list_entry(c->erase_complete_list.next, struct jffs2_eraseblock, list);
121 list_move(&jeb->list, &c->erase_checking_list);
124 jffs2_mark_erased_block(c, jeb);
133 jeb = list_entry(c->erase_pending_list.next, struct jffs2_eraseblock, list);
134 D1(printk(KERN_DEBUG "Starting erase of pending block 0x%08x\n", jeb->offset));
135 list_del(&jeb->list);
137 c->wasted_size -= jeb->wasted_size;
138 c->free_size -= jeb->free_size;
139 c->used_size -= jeb->used_size;
140 c->dirty_size -= jeb->dirty_size;
141 jeb->wasted_size = jeb->used_size = jeb->dirty_size = jeb->free_size = 0;
142 jffs2_free_jeb_node_refs(c, jeb);
143 list_add(&jeb->list, &c->erasing_list);
147 jffs2_erase_block(c, jeb);
166 static void jffs2_erase_succeeded(struct jffs2_sb_info *c, struct jffs2_eraseblock *jeb)
168 D1(printk(KERN_DEBUG "Erase completed successfully at 0x%08x\n", jeb->offset));
171 list_move_tail(&jeb->list, &c->erase_complete_list);
179 static void jffs2_erase_failed(struct jffs2_sb_info *c, struct jffs2_eraseblock *jeb, uint32_t bad_offset)
186 if (!jffs2_write_nand_badblock(c, jeb, bad_offset)) {
190 list_move(&jeb->list, &c->erase_pending_list);
193 jeb->dirty_size = c->sector_size;
204 list_move(&jeb->list, &c->bad_list);
219 jffs2_erase_failed(priv->c, priv->jeb, instr->fail_addr);
221 jffs2_erase_succeeded(priv->c, priv->jeb);
230 struct jffs2_raw_node_ref *ref, struct jffs2_eraseblock *jeb)
248 if (SECTOR_ADDR((*prev)->flash_offset) == jeb->offset) {
273 jeb->offset, jeb->offset + c->sector_size, ic->ino));
310 void jffs2_free_jeb_node_refs(struct jffs2_sb_info *c, struct jffs2_eraseblock *jeb)
313 D1(printk(KERN_DEBUG "Freeing all node refs for eraseblock offset 0x%08x\n", jeb->offset));
315 block = ref = jeb->first_node;
325 jffs2_remove_node_refs_from_ino_list(c, ref, jeb);
330 jeb->first_node = jeb->last_node = NULL;
333 static int jffs2_block_check_erase(struct jffs2_sb_info *c, struct jffs2_eraseblock *jeb, uint32_t *bad_offset)
343 ret = c->mtd->point(c->mtd, jeb->offset, c->sector_size,
352 c->mtd->unpoint(c->mtd, jeb->offset, retlen);
361 c->mtd->unpoint(c->mtd, jeb->offset, c->sector_size);
364 *wordebuf, jeb->offset + c->sector_size-retlen*sizeof(*wordebuf));
372 printk(KERN_WARNING "Failed to allocate page buffer for verifying erase at 0x%08x. Refiling\n", jeb->offset);
376 D1(printk(KERN_DEBUG "Verifying erase at 0x%08x\n", jeb->offset));
378 for (ofs = jeb->offset; ofs < jeb->offset + c->sector_size; ) {
379 uint32_t readlen = min((uint32_t)PAGE_SIZE, jeb->offset + c->sector_size - ofs);
414 static void jffs2_mark_erased_block(struct jffs2_sb_info *c, struct jffs2_eraseblock *jeb)
420 switch (jffs2_block_check_erase(c, jeb, &bad_offset)) {
426 D1(printk(KERN_DEBUG "Writing erased marker to block at 0x%08x\n", jeb->offset));
427 bad_offset = jeb->offset;
433 if (jffs2_write_nand_cleanmarker(c, jeb))
445 jffs2_prealloc_raw_node_refs(c, jeb, 1);
451 ret = jffs2_flash_direct_writev(c, vecs, 1, jeb->offset, &retlen);
456 jeb->offset, ret);
459 jeb->offset, sizeof(marker), retlen);
465 jeb->free_size = c->sector_size;
475 jffs2_link_node_ref(c, jeb, jeb->offset | REF_NORMAL, c->cleanmarker_size, NULL);
477 list_move_tail(&jeb->list, &c->free_list);
481 jffs2_dbg_acct_sanity_check_nolock(c, jeb);
482 jffs2_dbg_acct_paranoia_check_nolock(c, jeb);
490 jffs2_erase_failed(c, jeb, bad_offset);
498 list_move(&jeb->list, &c->erase_complete_list);