Lines Matching refs:blocks
87 struct block *blocks; member
94 struct block *block = &part->blocks[block_no]; in build_block_map()
187 part->blocks = kcalloc(part->total_blocks, sizeof(struct block), in scan_header()
189 if (!part->blocks) in scan_header()
236 kfree(part->blocks); in scan_header()
279 if (i >= part->total_blocks || part->blocks[i].offset != erase->addr || in erase_callback()
291 part->blocks[i].state = BLOCK_FAILED; in erase_callback()
292 part->blocks[i].free_sectors = 0; in erase_callback()
293 part->blocks[i].used_sectors = 0; in erase_callback()
302 part->blocks[i].state = BLOCK_ERASED; in erase_callback()
303 part->blocks[i].free_sectors = part->data_sectors_per_block; in erase_callback()
304 part->blocks[i].used_sectors = 0; in erase_callback()
305 part->blocks[i].erases++; in erase_callback()
307 rc = mtd_write(part->mbd.mtd, part->blocks[i].offset, sizeof(magic), in erase_callback()
317 part->blocks[i].offset); in erase_callback()
318 part->blocks[i].state = BLOCK_FAILED; in erase_callback()
321 part->blocks[i].state = BLOCK_OK; in erase_callback()
337 erase->addr = part->blocks[block].offset; in erase_block()
341 part->blocks[block].state = BLOCK_ERASING; in erase_block()
342 part->blocks[block].free_sectors = 0; in erase_block()
374 rc = mtd_read(part->mbd.mtd, part->blocks[block_no].offset, in move_block_contents()
383 part->blocks[block_no].offset); in move_block_contents()
403 addr = part->blocks[block_no].offset + in move_block_contents()
408 if (!part->blocks[block_no].used_sectors--) { in move_block_contents()
471 if (part->blocks[block].free_sectors) in reclaim_block()
474 this_score = part->blocks[block].used_sectors; in reclaim_block()
480 if (part->blocks[block].used_sectors == in reclaim_block()
485 this_score += part->blocks[block].erases; in reclaim_block()
501 part->blocks[best_block].used_sectors, in reclaim_block()
502 part->blocks[best_block].free_sectors); in reclaim_block()
504 if (part->blocks[best_block].used_sectors) in reclaim_block()
526 if (part->blocks[block].free_sectors && in find_free_block()
530 if (part->blocks[block].state == BLOCK_UNUSED) in find_free_block()
563 rc = mtd_read(part->mbd.mtd, part->blocks[block].offset, in find_writable_block()
573 part->blocks[block].offset); in find_writable_block()
594 addr = part->blocks[block].offset + in mark_sector_deleted()
611 part->blocks[block].used_sectors--; in mark_sector_deleted()
613 if (!part->blocks[block].used_sectors && in mark_sector_deleted()
614 !part->blocks[block].free_sectors) in mark_sector_deleted()
651 !part->blocks[part->current_block].free_sectors) { in do_writesect()
658 block = &part->blocks[part->current_block]; in do_writesect()
812 part->mbd.mtd->name, i, part->blocks[i].erases); in rfd_ftl_remove_dev()
818 kfree(part->blocks); in rfd_ftl_remove_dev()