X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs2.git;a=blobdiff_plain;f=yaffs_yaffs1.c;h=0cdc8c80c108017ef351b8b51d29fd922b6d3480;hp=d277e20e2a554cee97d28e91430ea24e839d4775;hb=b4d5215f18486403d16f2e776000e43eba052f40;hpb=83d99930038ef56463b6551aff5aa4d8348ce240 diff --git a/yaffs_yaffs1.c b/yaffs_yaffs1.c index d277e20..0cdc8c8 100644 --- a/yaffs_yaffs1.c +++ b/yaffs_yaffs1.c @@ -22,10 +22,10 @@ int yaffs1_scan(struct yaffs_dev *dev) { struct yaffs_ext_tags tags; - int blk; + u32 blk; int result; int chunk; - int c; + u32 c; int deleted; enum yaffs_block_state state; LIST_HEAD(hard_list); @@ -98,6 +98,8 @@ int yaffs1_scan(struct yaffs_dev *dev) result = yaffs_rd_chunk_tags_nand(dev, chunk, NULL, &tags); + if (result != YAFFS_OK) + continue; /* Let's have a good look at this chunk... */ if (tags.ecc_result == YAFFS_ECC_RESULT_UNFIXED || @@ -162,15 +164,15 @@ int yaffs1_scan(struct yaffs_dev *dev) if (in && in->variant_type == YAFFS_OBJECT_TYPE_FILE && - in->variant.file_variant.scanned_size < + in->variant.file_variant.stored_size < endpos) { - in->variant.file_variant.scanned_size = + in->variant.file_variant.stored_size = endpos; if (!dev->param.use_header_file_size) { in->variant. file_variant.file_size = in->variant. - file_variant.scanned_size; + file_variant.stored_size; } } @@ -325,7 +327,7 @@ int yaffs1_scan(struct yaffs_dev *dev) use_header_file_size) in->variant. file_variant.file_size - = yaffs_oh_to_size(oh); + = yaffs_oh_to_size(dev, oh, 0); break; case YAFFS_OBJECT_TYPE_HARDLINK: in->variant.